我想在javascript中比较几个日期。首先,我得到了数据库。在数据库中它是日期格式,但在json文件中发送之后,我猜它只是一个字符串。
第二个我在javascript中以日期格式得到它。我在javascript中找到了这个脚本:
var todayAEJ = new Date();
var ddAEJ = todayAEJ.getDate();
var mmAEJ = todayAEJ.getMonth()+1; //January is 0!
var yyyyAEJ = todayAEJ.getFullYear();
if(ddAEJ<10){ddAEJ='0'+ddAEJ} if(mmAEJ<10){mmAEJ='0'+mmAEJ} todayAEJ = ddAEJ+'-'+mmAEJ+'-'+yyyyAEJ;
它和魅力一样。
另一个日期是这样的:13-01-2014
我试着像这样比较:
if(todayAEJ > val.date_End)...
但是当今天的日子大于val.date_End的那天时,它会返回true。因此,当月份不同时,我不能使用此表格。在这种情况下我该怎么办?
答案 0 :(得分:1)
otherDate = '13-01-2014';
myDate=myDate.split("-");
var newDate=myDate[1]+","+myDate[0]+","+myDate[2];
otherDateTimeStamp = new Date(newDate).getTime();
todayAEJTimeStamp = new Date().getTime();
if(todayAEJTimeStamp > otherDateTimeStammp){
// your code
}
您甚至可以使用var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];
使用上面的代码......它将解决您的问题!
... Iinjoy
答案 1 :(得分:0)
如果您可以使用MM-DD-YYYY
格式代替DD-MM-YYYY
,则可以使用Date.parse
:
var todayAEJTimeStamp = Date.parse(todayAEJ);//Date parse needs `MM-DD-YYYY` format
//if val.date_End is instance of Date
if(todayAEJTimeStamp > val.date_End.getTime()) {
//your code here
}
答案 2 :(得分:0)
你必须通过microtime比较它们
var date = new Date("11/21/1987 16:00:00");
var milliseconds = date.getTime(); // Compare this milliseconds
答案 3 :(得分:0)
除了时间戳解决方案之外,我建议在任何情况下使用date.js来使用JS中的Date对象。日期对象在JS中有很奇怪的行为,这个库派上用场。