3

私は今、次のコードを持っています:

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_time = curr_hour + ":" + curr_minute;

var open_time = "17:00";

if(Date.parse ( curr_time ) > Date.parse ( open_time )){
   alert("Webshop is open");
} else {
   alert("Webshop is closed.");
}

コードが行うべきことは..現在の時刻が17:00より大きい場合はアラートを送信し、そうでない場合は他のアラートを送信します。

4

4 に答える 4

6

あなたはそのすべての構文解析を必要としません、あなたはすでにgetHours()方法を知っています!

if(new Date().getHours() >= 17)

...それでおしまい!

于 2012-08-01T15:38:51.577 に答える
1

hh:mm時間をフォーマットで解析することはできません。任意の日付(この場合は2012年1月1日)を指定して、完全な日付オブジェクトにします。両方で同じであれば、日付は関係ありません。

if(Date.parse('01/01/2012 ' + curr_time) > Date.parse ('01/01/2012 ' +  open_time)){
   console.log("open");
}else{
   console.log("closed");
}

より簡単なアプローチは、時間と分を比較することです。それがあなたの持っているものだからです。

curr_hour > open_hour && curr_minute > open_minute
于 2012-08-01T15:42:29.107 に答える
0

なぜ日付オブジェクトを作成するのですか?基本的な数学を使うだけです。

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_time = curr_hour + curr_minute/60;

var open_time = 17;
var openClosed = curr_time > open_time ? "Open" : "Closed";

alert("Webshop is " + openClosed + ".");
于 2012-08-01T15:40:15.487 に答える
0

これを試して:

var d = new Date();
var curr_hour = d.getHours();
var curr_minute = d.getMinutes();
var curr_second = d.getSeconds();

if((curr_hour > 17) || (curr_hour == 17 && curr_minute == 0 && curr_second == 0 )){
   alert("Webshop is open");
} else {
   alert("Webshop is closed.");
}
于 2012-08-01T15:55:21.863 に答える