データベースに文字列として2回フォーマットされています。それぞれ、午前8時30分と午後9時のフォーマットです。Javascriptを使用して、現在の時刻を取得し、2回の範囲内にあるかどうかを確認したくありません。これをどうやってやるの?
質問する
2020 次
2 に答える
2
開始時刻、終了時刻、および現在時刻を JavaScript の Date オブジェクトに変換し、start <= current < end
. 開始日が終了日よりも前になると、注意が必要です。
// The un-important bits
var d0 = new Date("01/01/2001 " + "8:30 AM");
var d1 = new Date("01/01/2001 " + "9:00 PM");
var d = new Date("01/01/2001");
d.setHours(new Date().getHours());
d.setMinutes(new Date().getMinutes());
// For testing
console.log(d0, d, d1);
// The important bit
console.log(
d0 < d1
? (d0 <= d && d < d1)
: (d1 <= d && d < d0) == false
);
于 2012-06-29T21:00:55.600 に答える
1
このような?
function validNow ( from, until ) {
var toTime= function ( str ) {
var match = str.match(/^(\d+):(\d+)\s*([AP])/);
if ( !match ) throw "str has wrong format";
return match[1] * 60 + +match[2] + (match[3] == 'P' ? 720 : 0);
};
var d= new Date();
var current= d.getHours() * 60 + d.getMinutes();
console.log(current, toTime(until));
return current >= toTime(from) && current <= toTime(until);
}
console.log(validNow('8:30PM', '10:11PM'));
于 2012-06-29T21:03:41.727 に答える