2017-10-14 9 views
2

私は自分の列に15分以上の間隔でループしているgoogleシートのjavascriptスクリプトを使用しています。私は現在の時間/分と一致する列を見つけようとしているので、強調表示することができますが、javascriptで作業時間をチェックすることはできません。JavaScriptの2回の間の時間を確認します

時間とnextTimeは単に八時か8時15分のような時代ですので、私は日付に変換するとき、私は次のような何かを得る:

土1899年12月30日午前8時00分00秒GMT-0600(CST) getTime()は日付部分か時間部分のみを考慮していますか? "10/14/2017"のような日付の文字列がある場合、どうすれば日付オブジェクトの2を一緒にできますか?

var now = new Date().getTime(); 

    for(i in data[0]){ 
    var time = new Date(data[0][i]); 
    var nextTime = new Date(data[0][Number(i) + 1]); 

    var diff1 = time.getTime() - now; 
    var diff2 = nextTime.getTime() - now; 

    if(now >= time.getTime() && now < nextTime.getTime()){ 
     Logger.log(time); 
    } 
    } 
+1

私はおそらく長い答えを与えることができますが、あなたがここで行うことができる最善のことはmoment.jsを使用することです。日付オブジェクトはjavascript suxで、 – iagowp

+0

を扱うのが簡単になります。https://stackoverflow.com/a/16080662/6149665 – ArtemSky

+1

Dateオブジェクトは、常に形式 'var d = new Date(年、月、日'var d = new Date(年、月、日、時、分);'を使用すると、他のフォーマットがすべてのブラウザで動作する場合と動作しない場合があるためです。参照用のリンクを確認してください。https://www.w3schools.com/jsref/jsref_obj_date.asp –

答えて

2

getTime()メソッドは1970年1月1日00:00:00 UTCから経過したミリ秒数を返します。

この番号をタイムスタンプといいます。例えば1508001790301.この数値は、ミリ秒の合計数を表します(したがって、日付部分と時刻部分の両方を考慮します)

「10/14/2017」という文字列をDateコンストラクタの引数としてタイムスタンプに変換することができます新たに作成された日付オブジェクトに対してgetTimeメソッドを呼び出すことです。

var nextTime =新しい日付('10/14/2017 ')。getTime();これにより、1970年1月から10月14日までのミリ秒数が返されます。一緒にすべてを持って

1)

var now = new Date().getTime(); // 1508001790301 

2現在のタイムスタンプを取得するには)時間のタイムスタンプとnextTime

var time = new Date('10/14/2017').getTime(); 
var nextTime = new Date('10/15/2017').getTime(); 

3)は単にあなたのように値を比較ゲット例の中にすでにありました

if(time <= now && now <= nextTime) { 
     // Highlight the column 
} 
関連する問題