我对Javascript仍然相当新,但我遇到日期问题。我的下面的代码在Chrome,Safari和Opera中运行良好,但在Firefox& IE,显示"无效日期。"我不确定为什么当它在其他浏览器中工作时它们不起作用。任何帮助,将不胜感激。这是我的代码:
// Perl variable brings in the enrollment date
var enrollDate = new Date(user.joinDate);
var currentDate = new Date();
var expirationDate = new Date(enrollDate);
expirationDate.setDate(enrollDate.getDate()+7);
$('.hide-mailingAddress').addClass('hidden');
if (currentDate <= expirationDate) {
$('.show-mailingAddress').removeClass('hidden');
}
console.log("Join Date: " + enrollDate);
console.log("Current Date: " + currentDate);
console.log("Expiration Date: " + expirationDate);
以下是Chrome,Safari,Opera输出的内容:
Join Date: Mon Dec 08 2014 00:00:00 GMT-0700 (MST)
Current Date: Mon Feb 02 2015 09:54:27 GMT-0700 (MST)
Expiration Date: Mon Dec 15 2014 00:00:00 GMT-0700 (MST)
Firefox&amp; IE输出:
Join Date: Invalid Date
Current Date: Mon Feb 02 2015 09:49:41 GMT-0700 (MST)
Expiration Date: Invalid Date
答案 0 :(得分:2)
是。在某些版本的IE new date()
中没有按预期返回。
您可能想要使用:
var currentDate = new Date();
var finalDate = currentDate.getFullYear() + "/" + (currentDate.getMonth() + 1) + "/" + currentDate.getDate();
顺便说一下,currentDate.getMonth() + 1
是因为它从 0
答案 1 :(得分:0)
我怀疑user.joinDate是带引号的字符串:
如:'“2014年12月8日星期一00:00:00 GMT-0700(MST)”'
这一额外的引号集在Internet Explorer中失败,但Chrome解析得很好。
new Date('"Mon Dec 08 2014 00:00:00 GMT-0700 (MST)"')