【发布时间】:2013-01-31 16:33:02
【问题描述】:
我无法将 2 位日期正确格式化为 4 位日期。
我有一个文本输入字段:
<input type="text" value="" class="date"/>
然后我想在用户输入日期后将其格式化为“mm/dd/yyyy”格式。所以我有一个 onChange 事件:
$('.date').on('change',function(){
var date = new Date($(this).val());
$(this).val((date.getMonth()+1)+'/'+date.getDate()+'/'+date.getFullYear());
});
好的,现在奇怪的事情来了(我将使用 12/12/12 作为示例日期):
1) getFullYear() 在所有 IE、FF 中返回 1912。 Chrome 2012 年回归。
2) getYear() 在 IE、Chrome 中返回 112。 FF 返回 12。
因此,此时似乎唯一的选择是嗅探用户代理,并相应地使用它。有没有嗅探UA?
【问题讨论】:
-
你可能想看看这个帖子 stackoverflow.com/questions/2997785/… - JavaScript 不适合约会。
-
如果我在日期字段中输入“04/19/10”之类的内容,你怎么知道我说的是 1910 年还是 2010 年?
-
您的输入应该需要全年。
-
@BrianHoover 是的,除此之外,但我的客户希望在日期进行 JS 验证/更正:-S
-
@kinsho 对于这个应用程序,我们假设它是 20XX,因为我们收集的数据应该只发生在 20XX。
标签: javascript jquery