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);
}
I need to compare two dates not the time, and how to remove the time part and just compare the dates? The convertToDate() is returning the "Thu Jan 01 05:30:00 GMT+05:30 1970" everytime?
You can simplify your code. To get a date from dd/mm/yyyy
, simply splitting on /
, reversing the result and joining it on '/' gives you yyyy/mm/dd
, which is valid input for a new Date
to compare to some other Date
. See snippet
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>
Just return it in milliseconds format
function convertToDate(dateString) {
var dateData = dateString.split("/");
return +new Date(new Date().setFullYear(dateData[0], dateData[1] - 1, dateData[2]));
}
And also change var today = new Date();
to var today = +new Date();
. Now it should work. +
here converts Date
object to milliseconds.
The best way to compare two date is to instanciate them with same object, here you must use Date object.
function mainFunc(){
var firstDate = new Date( dueDate = "30/12/2014" );
today = new Date();
if( today > firstDate ){
//...
}
else{
//...
}
}
I will recomend momentjs lib to parse, validate, manipulate, and display dates in 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
}
Here is the link http://momentjs.com/
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.