I am trying to pick up value from datetimepicker tetxbox and compare those values with current time.
//startTime textbox text = 19/12/2014 03:58 PM
var startTime = Date.parse($('[id$=txtStartDate]').val().toString());
//endTime textbox text = 19/12/2014 04:58 PM
var endTime = Date.parse($('[id$=txtEndDate]').val().toString());
var currentTime = Date.now();
alert(startTime);
alert(endTime);
alert(currentTime);
if (currentTime >= startTime && currentTime <= endTime) {
alert();
}
Date.parse() is used fro converting string to milliseconds since Jan 1 1970. Date.now() returns current date milliseconds since Jan 1 1970.
But the above conversion methods are not working properly. What should be logic to compare datetime by first sonverting string in format like 19/12/2014 03:58 PM to Date object and then do comparing.
Since that format isn't documented as being supported by
Date.parse
, your best bet is to parse it yourself, which isn't difficult: UseString#split
or a regular expression with capture groups to split it into the individual parts, useparseInt
to convert the parts that are numeric strings into numbers (or, with controlled input like this, just use the unary+
on them), and then usenew Date(...)
to use those numbers to create aDate
instance.One gotcha: The
month
value thatnew Date
expects is zero-based, e.g. 0 = January. Also remember to add 12 to the hours value if the input uses AM/PM instead of the 24-hour clock.Or, of course, use any of several date/time handling libraries, such as MomentJS.