0

我正在检查两个不同的日期时间,看一个是否大于另一个:

这是我的(现在)当前日期时间:2013 年 8 月 1 日星期四 10:27:40 GMT-0500 (CDT) 这是我看到的大于或小于的日期时间:2013 年 8 月 1 日星期四 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 检查:

if(current_date_time >= date_time_checking_against){ }

这不起作用,因为 10:27:40 不在 12:15:00 之后。但它应该是,因为这两个时间都是上午。我需要知道这是否是正确的方法,或者是否有办法将其更改为 24 小时格式或以某种方式在其中添加 am pm。非常感谢任何帮助,如果您需要更清晰的信息,请告诉我。

谢谢!

编辑:

这是日期时间数组:

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]);
4

1 回答 1

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
于 2013-08-01T15:56:28.727 回答