2016-05-14 59 views
0

我試圖用Moment.js創建兩個日期之間的日期數組 以下在我的電腦上工作,但不在我的iphone或ipad(設備抓取)。 如果我改變stopDate到2016年9月24日或更少它適用於我的設備瞬間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處理'Date'的方式不同於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 alert(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);