我正在尝试从 datetimepicker tetxbox 中获取值并将这些值与当前时间进行比较。
//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();
}
自 1970 年 1 月 1 日起,Date.parse() 用于将字符串转换为毫秒。 Date.now() 返回自 1970 年 1 月 1 日以来的当前日期毫秒数。
但是上面的转换方式都不能正常工作。 通过首先将格式为 19/12/2014 03:58 PM 的字符串转换为日期对象然后进行比较来比较日期时间应该是什么逻辑。
最佳答案
问题是 Date()
需要日期格式 mm/dd/yyyy,因此您的日期无效。
你可以像这样确定你的日期:
function toValidDate(datestring){
return datestring.replace(/(\d{2})(\/)(\d{2})/, "$3$2$1");
}
var startTime = Date.parse(toValidDate($('[id$=txtStartDate]').val().toString()));
var endTime = Date.parse(toValidDate($('[id$=txtEndDate]').val().toString()));
var currentTime = Date.now();
alert(startTime);
alert(endTime);
alert(currentTime);
关于javascript - 在javascript中将字符串转换为日期时间并与当前时间进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27564639/