2016-09-08 3 views
0

moment.jsを使用して1時間10分間の配列を作成したいが、最初のステップで失敗する。タイムスタンプのデータを追加するデータが適切な時間の瞬間を与えないjs

var startTime = moment().unix(); 
var endTime = moment().add(1,'h').unix(); 
getTimeSheet(startTime,endTime); 
var getTimeSheet = function(st, et) { 
     console.log(arguments); 
     var timeSheet = []; 
     var duration = moment.duration({'minutes' : 10}); 
     var ct = st; 
     console.log(ct); 
     while (ct <= et){ 
      var n10 = moment.unix(st).add(duration).unix(); 
      timeSheet.push(n10); 
      console.log(n10); 
      ct = n10; 
     } 
     console.log(timeSheet); 
}; 

しかし、これはあなたがst変数に10分を追加しているwhileループの各反復では、アレイ

+1

をそれらをmoment.jsオブジェクト(または 'moment(st * 1000)';)) – Marek

+0

に変換するには 'moment.unix(st)'を使用する必要があります。ありがとう。どうやってアレイを作るの?私は 'while(st <= et)'を使っていますが、ループは長くなります –

答えて

1

を作成することができません。したがって、n10ctには依然として同じ値が含まれています。だからこそこのループは終わらない。

、変更する必要があります:

​​

var n10 = moment.unix(st).add(duration).unix(); 

ます。また、ここでいくつかのマイナーな改良と実施例確認することができます:あなたは本当に、その後のUNIXタイムスタンプを使用する必要がある場合 https://jsfiddle.net/65gL9tgr/2/

関連する問題