2016-05-14 6 views
0

Moment.jsを使用して2つの日付の間に日付の配列を作成しようとしています 次は私のPC上で動作しますが、私のiPhoneやipad(デバイスが占有する)では動作しません。 私は2016年9月24日以下にstopDateを変更すると、それは私のデバイス上で動作しますモーメントjsとIOS

var arr=[]; 
    var startDate = moment("2016-06-01") 
    var stopDate=moment("2016-09-29") 
    while (startDate.isBefore(stopDate)) {   
    arr.push(moment(startDate).format('YYYY-MM-DD'))  
    startDate = moment(startDate).add(1, 'days'); 

          }   
     alert(arr)  
+0

あなたは '瞬間に日付形式を宣言してみてください()'。 iOSが「日付」をPCとは違って処理すると、おそらくエラーが発生する可能性があります。 'var startDate = moment(" 2016-06-01 "、" YYYY-MM-DD ")'。また、日付をインクリメントするには 'startDate.add(1、 'days');' startDate = ... 'の必要はありません。 –

+0

と 'startDate.format'( 'YYYY-MM-DD') '(moment)(startDate).format( 'YYYY-MM-DD')'の代わりに '。 'startDate'はすでに'瞬間 'です –

+0

私はvar arr = [];を試しました。 \tするvarたstartDate =モーメント( "2016年6月1日"、 "YYYY-MM-DD") するvar stopDate =モーメント( "2016年9月29日"、 "YYYY-MM-DD")\t \t \t \t一方(startDate.isBefore(stopDate)){ arr.push(startDate.format( 'YYYY-MM-DD')) \t \t startDate.add(1、 '日')。 } \t \t \t \tアラート(arr)でも同じ問題が発生しました – slanton

答えて

0

これは私のために動作します。 https://jsfiddle.net/stevenkaspar/mLwjdzey/

<script> 
var arr = []; 
var startDate = moment("2016-06-01"); 
var stopDate = moment("2016-09-29"); 
while (startDate.isBefore(stopDate)) { 
    arr.push(startDate.format('YYYY-MM-DD')); 
    startDate.add(1, 'days'); 
} 
console.log(arr); 
</script> 
+0

ありがとうございます。 jsfiddleは私のiPhoneで動いたので、cdnjs.cloudflare.comのmoment.jsのソースを見ました。私はダウンロードしたバージョンを使用していました。私はhttps://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.jsを使用して変更し、私の問題を解決しました。 – slanton

0

次のコードは、(包括的)あなたのすべての日付を与える:

var startDate = moment("2016-06-01"); 
var stopDate = moment("2016-09-29"): 
var dateArr = []; 
var interval = moment.twix(startDate, stopDate).iterate('days'); 
while (interval.hasNext()) { 
    dateArr.push(interval.next().format('YYYY-MM-DD')) 
}; 

console.log(dateArr); 
関連する問題