设置输入类型中的格式和值=“0”;日期”;

Setting format and value in input type="date"

本文关键字:日期 类型 输入 格式 设置      更新时间:2023-09-26

有什么方法可以设置<input type="date" />的格式吗?如果没有,那么我如何使用默认格式type="date"的JavaScript在该字段中设置日期。我怎样才能得到这个字段的格式?

编辑:事实上,我想展示移动设备的原生日期选择器,这就是我选择这种类型输入的原因。如果这个领域有任何替代品,那也很好。

对不起,如果我说了什么愚蠢的话。请指导我

格式为YYYY-MM-DD。你不能更改它。

$('#myinput').val('2013-12-31');设置值

new Date().toISOString().split('T')[0];

试试这个:(

function getDefaultDate(){
    var now = new Date();
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);
    var today = now.getFullYear()+"-"+(month)+"-"+(day) ;
    return today;
}
$(document).ready(function(){ 
    $("#dateid").val( getDefaultDate()); 
});

加拿大语言环境也遵循相同的格式:

new Date().toLocaleDateString('en-CA')

比上面的更容易

var today = new Date().toISOString().substring(0,10); # "2013-12-31"

它很难看,但它很管用。:/

var today = new Date().toLocaleString('en-GB').split(' ')[0].split('/').reverse().join('-');

请检查https://stackoverflow.com/a/9519493/1074944并且也尝试这种方式$('input[type="date"]').datepicker().prop('type','text');检查演示

我认为这可以帮助

function myFormatDateFunction(date, format) {
     ...
}
jQuery('input[type="date"]')                                             
    .each(function(){                                                              
        Object.defineProperty(this,'value',{                                         
          get: function() {                                   
            return myFormatDateFunction(this.valueAsDate, 'dd.mm.yyyy');      
          },                                                                         
          configurable: true,                                                        
          enumerable : true                                                          
        });                                                                          
      });                                                                                
function getDefaultDate(curDate){
var dt = new Date(curDate);`enter code here`
var date = dt.getDate();
var month = dt.getMonth();
var year = dt.getFullYear();
if (month.toString().length == 1) {
    month = "0" + month
}
if (date.toString().length == 1) {
    date = "0" + date
}
return year.toString() + "-" + month.toString() + "-" + date.toString();
}

函数中,传递您的日期字符串。

@cOnstructOr提供了一个很好的想法,但它在中留下了一个逗号

var today = new Date().toLocaleString('en-GB').split(' ')[0].slice(0,-1).split('/').reverse().join('-');

修复

您想要做的是从输入中获取值,并将其分配给一个新的Date实例。

let date = document.getElementById('dateInput');
let formattedDate = new Date(date.value);
console.log(formattedDate);

这里有一个简单的答案,

由于这是一个字符串,我们可以使用Javascript字符串切片方法来重新排列字符

<input type="date" id="idate" name="tno"><br>
<button onclick="run()">Run</button>
<p id="demo"></p>
<script>
function run() {
var d = document.getElementById("idate").value;
document.getElementById("demo").innerHTML = d.slice(8, 10) + "/" + d.slice(5, 7) + "/" + d.slice(0, 4);
}
</script>

https://www.w3schools.com/jsref/jsref_slice_string.asp