我无法正确格式化2位数日期作为4位数日期.
我有一个文本输入字段:
<input type="text" value="" class="date"/>
Run Code Online (Sandbox Code Playgroud)
然后我想在用户输入日期后以"mm/dd/yyyy"格式对其进行格式化.所以我有一个onChange事件:
$('.date').on('change',function(){
var date = new Date($(this).val());
$(this).val((date.getMonth()+1)+'/'+date.getDate()+'/'+date.getFullYear());
});
Run Code Online (Sandbox Code Playgroud)
好的,所以现在出现了奇怪的事情(我将使用12/12/12作为示例日期):
1)getFullYear()在所有IE,FF中返回1912.Chrome返回2012年.
2)getYear()在IE中返回112,Chrome.FF返回12.
因此,此时似乎唯一的选择是嗅探用户代理,并相应地使用它.反正在嗅探UA吗?
您可以首先尝试将输入的各个部分分开
...
var input=$(this).val();
var month=input.substr(0,2)-1;
var day=input.substr(3,2);
var year=parseInt("20"+ input.substr(6,2));
Run Code Online (Sandbox Code Playgroud)
然后启动一个新的 Date 对象:
var date= new Date(year,month,day);
Run Code Online (Sandbox Code Playgroud)
或将其写回字段,就像您所做的那样:
$(this).val((date.getMonth()+1)+'/'+date.getDate()+'/'+date.getFullYear());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6341 次 |
| 最近记录: |