我正在检查两个不同的日期时间,以查看一个是否大于另一个:
这是我(现在)当前日期时间:2013年8月1日星期四10:27:40 GMT-0500(CDT) 以下是我的日期时间,如果它大于或小于:Thu Aug 01 2013 12:15:00 GMT-0500(CDT) - (顺便说一下应该是凌晨12:15)
这是我的代码:
var current_date_time = new Date();
var date_time_checking_against = new Date(date_segment[0], date_segment[1]-1, date_segment[2], time_segment[0], time_segment[1]);
2013年8月1日星期四12:15:00 GMT-0500(CDT)。如果检查的话我会做一个简单的事情:
if(current_date_time >= date_time_checking_against){ }
这不起作用,因为10:27:40不是在12:15:00之后。但它应该是,看看两个时间是如何AM。我需要知道这是否是正确的方法,或者是否有办法将其更改为24小时格式或以某种方式添加上午。非常感谢任何帮助,如果您需要更清晰,请告诉我。
谢谢!
编辑:
这是日期时间数组:
var date_time_str = date+' '+time;
date_time_str = date_time_str.split(' ');
["2013-08-01", "12:15", "am"] // result from split above
var date_segment = date_time_str[0].split('-');
var time_segment = date_time_str[1].split(':');
var date_time_checking_against = new Date(date_segment[0], date_segment[1]-1, date_segment[2], time_segment[0], time_segment[1]);
答案 0 :(得分:1)
鉴于以下数据源,您可以正确地为其创建Date对象...
date_time_str = ["2013-08-01", "12:15", "am"];
var date_segment = date_time_str[0].split('-');
var time_segment = date_time_str[1].split(':');
var date_time_checking_against = new Date(
date_segment[0], // year
date_segment[1]-1, // month of year
date_segment[2], // day of month
(time_segment[0]%12) + (date_time_str[2] == 'pm' ? 12 : 0), // hour of day
time_segment[1]); // minute of hour
console.log(new Date() >= date_time_checking_against); // true, we've already passed this time