[英]How to compare dates in javascript with two different format?
function mainFunc() {
dueDate = "30/12/2014";
var firstReminderDate = dueDate;
var today = new Date();
var firstDate = convertToDate(firstReminderDate);
if (today > firstDate) {
//send reminder to A
} else {
// send reminder to B
}
}
function convertToDate(dateString) {
var dateData = dateString.split("/");
var date = new Date(new Date().setFullYear(dateData[0], dateData[1] - 1, dateData[2]));
return new Date(date);
}
我需要比较两个日期而不是时间,以及如何删除时间部分并只比较日期? convertToDate()每次都会返回“Thu Jan 01 05:30:00 GMT + 05:30 1970”?
您可以简化代码。 要从dd/mm/yyyy
获取日期,只需拆分/
,反转结果并将其加在'/'上即可得到yyyy/mm/dd
,这是新Date
与其他Date
比较的有效输入。 请参阅片段
var report = document.querySelector('#result'); report.innerHTML += '30/12/2014 => '+ mainFunc('30/12/2014'); report.innerHTML += '<br>01/12/2014 => '+ mainFunc('01/01/2014'); function mainFunc(due) { due = due ? convertToDate(due) : new Date; return new Date > due ? due +' passed: <b>send reminder to A</b>' : due +' not passed: <b>send reminder to B</b>'; } function convertToDate(dateString) { return new Date(dateString.split("/").reverse().join('/')); }
<div id="result"></div>
只需以毫秒格式返回即可
function convertToDate(dateString) {
var dateData = dateString.split("/");
return +new Date(new Date().setFullYear(dateData[0], dateData[1] - 1, dateData[2]));
}
并且还改变var today = new Date();
to var today = +new Date();
。 现在它应该工作。 +
这里将Date
对象转换为毫秒。
比较两个日期的最佳方法是将它们与同一个对象进行实例化,这里必须使用Date对象。
function mainFunc(){
var firstDate = new Date( dueDate = "30/12/2014" );
today = new Date();
if( today > firstDate ){
//...
}
else{
//...
}
}
我将建议momentjs lib在JavaScript中解析,验证,操作和显示日期。
var firstDate = moment("30/12/2014", "DD/MM/YYYY")
var today = moment();
// Format to Unix Timestamp to compare
if(today.format('X') > firstDate.format('X')){
//send reminder to A
}else{
// send reminder to B
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.