0

Javascript には time の組み込み関数があります。

    var date = new Date();
    d.getHours() //gets the hour in integer 0-23
    d.getMinutes() //gets the minute in integer 0-59

関数 (例: A()) を 0:35 から 4:35 の間に実行したい

単純な論理演算 ( &&||) だけでこれを行うことは可能ですか? 可能だとは思いませんが、それを実装するエレガントな方法を知りたかったのです。

4

4 に答える 4

2
var date = Date.now();     // ES5 - or new Date().getTime()
var sec = (date / 1000);   // seconds since epoch
sec = sec % 86400;         // seconds since midnight
var mins = sec / 60;       // minutes since midnight

if (mins >= 35 && mins < 4*60+35) {
    A();
}
于 2012-05-09T08:56:09.927 に答える
2

タイムスタンプを使用して比較できます。

var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
var day = date.getDate();
var start = new Date(year, month, day, 0, 35);
var end = new Date(year, month, day, 4, 35);

if (date.getTime() >= start.getTime() && date.getTime() <= end.getTime()) {
  //...
}
于 2012-05-09T09:06:18.913 に答える
0

これはうまくいくはずです:

function foo(){
    var now = new Date();
    if( (now.getHours() < 1 && now.getMinutes() < 35) 
       || (now.getHours() > 3 && now.getMinutes() > 35) ){
         return false; //if it isn't in your time, return false
    }

    //put your code here. this will run between the hours of 12:35AM and 4:35AM local time

}

これがあなたが探しているものであることを願っています。そうでない場合は、お知らせください。

于 2012-05-09T09:06:41.963 に答える
0

技術的には可能ですが、これはエレガントなソリューションではないという点であなたは絶対に正しいです:

var h = d.getHours();
var m = d.getMinutes();
if ((h == 0 && m >= 35) || (h > 0 && h < 4) || (h == 4 && m <=35)) {
    A();
}
于 2012-05-09T09:07:51.523 に答える