2016-05-14 12 views
0

Ich versuche, ein Array von Daten zwischen zwei Daten mit Moment.js erstellen Die folgenden funktioniert auf meinem PC, aber nicht auf meinem iPhone oder iPad (Gerät greift). Wenn ich die stopDate zu 2016.09.24 oder weniger ändern funktioniert es auf meine GeräteMoment js und 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

Sie könnten versuchen, das Datumsformat im 'Moment erklärt()'. Wenn iOS "Date" anders als PC behandelt, was wahrscheinlich der Fall ist, könnten Fehler auftreten. 'var startDate = Moment (" 2016-06-01 "," JJJJ-MM-TT ")'. Auch für die Inkrementierung des Datums genügt es 'startDate.add (1, 'days');' nee 'startdate = ... ' –

+0

und du kannst einfach' startDate.format (' YYYY-MM-DD ') 'anstelle von' moment (startDate) .format ('YYYY-MM-DD') '. 'startDate' ist bereits ein' Moment' –

+0

Ich habe versucht var arr = []; \t var startdate = Moment ("2016.06.01", "YYYY-MM-DD") var stopDate = Moment ("2016.09.29", "YYYY-MM-DD") \t \t \t \t while (startDate.isBefore (stopDate)) { arr.push (startDate.format ('YYYY-MM-DD')) \t \t startDate.add (1, 'Tage'); } \t \t \t \t Warnung (arr), aber das gleiche Problem – slanton

Antwort

0

Dies funktioniert für mich. 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

Vielen Dank dafür. Die jsfiddle hat an meinem iphone gearbeitet, also habe ich mir deine Quelle für moment.js angeschaut, nämlich cdnjs.cloudflare.com. Ich hatte eine Version verwendet, die ich heruntergeladen hatte. Ich wechselte zu https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js und es löste mein Problem. – slanton

0

folgenden Code wird Ihnen alle Termine (inklusive):

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); 
Verwandte Themen