0

2 つの異なる日時をチェックして、一方が他方よりも大きいかどうかを確認しています。

これが私の(現在の)現在の日時です:Thu Aug 01 2013 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チェックを行っています:

if(current_date_time >= date_time_checking_against){ }

10:27:40 は 12:15:00 の後ではないため、これは機能しません。しかし、両方の時間が午前であることを考えると、そうあるべきです。これが正しい方法なのか、それとも 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]);
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 に答える