2015-04-29 12 views
6

pikaday tarih seçici eklentisini (angular directive aracılığıyla ve momentjs ile) kullanıyorum ve sunucuya değer gönderiyor. Bunun momentjs sorun olduğunu düşünüyorum ama yanlış ne olduğu hakkında hiçbir fikrim yok"getDate()" toJSON() "bir gün kaybediyor

var d = myPikaObject.getDate(); 
console.log(d);    // Thu Apr 30 2015 00:00:00 GMT+0200 (SAST) 
console.log(d.toJSON());  // 2015-04-29T22:00:00.000Z 

: json dönüştürülüyor olsa bir gün kaybetmek gibi görünüyor.

+3

Hiç bir gün kaybetmiyor. GMT + 0200 görüyor musun? 2 saat sürdüyse tarih ne olurdu? –

+0

Bir gün kaybetmekten farklı bir saat dilimi kullanmak için değişime kafa karıştırıcı olabileceğini düşünüyorum. Tarayıcı ve sunucu saat dilimlerindeki farklılıklar nedeniyle bu bana oldu. – DrCord

+0

bir saat kaybettiğinden saat dilimi lol nedeniyle saat farkı. – user3632710

cevap

3

momentleri ile zaman alıyorsunuz, moment.utc() yöntemini deneyebilirsiniz. dokümanlar ki:

sürümü 2.0.0 itibariyle bir yerel anahtar Sen yapabilirsin

moment('2012 juillet', 'YYYY MMM', 'fr'); 
moment('2012 July', 'YYYY MMM', 'en'); 

an() ve moment.utc() üçüncü parametre olarak geçirilebilir utc() yöntemiyle çok daha fazla.

moment.utc(); 
moment.utc(Number); 
moment.utc(Number[]); 
moment.utc(String); 
moment.utc(String, String); 
moment.utc(String, String[]); 
moment.utc(String, String, String); 
moment.utc(Moment); 
moment.utc(Date); 
+0

Teşekkürler, 'moment (d) .format (" YYYY-AA-GG ")' yi kullanıyorum (d yukarıdaki sorudaki değişkendir). – jcuenod

+0

Yardım etmekten mutluluk duyuyorum! Bu yardımcı olabileceğinden dolayı da bağışlanabilir misiniz? :) – ilter

5

Her şey tarihinizin biçimiyle ilgilidir. Yazdırma d juste zaman

, bu vardır:

Thu Apr 30 2015 00:00:00 GMT+0200 (SAST) 

O GMT +2, sen d.ToJson yazdırırken böylece() Eğer 2 saat kaybettik. Yani bir gün önce 22'de

+0

Tamam, sorun bende. Teşekkür ederim! Doğru tarihi nasıl alabilirim? – jcuenod

+1

Saat dilimini de saklayın, daha sonra ayrıştırdığınızda, saat dilimini dikkate alın. Veya .toJSON() 'i kullanmayın, bunun yerine' .toString() 'yi kullanın. –

+1

* "Doğru tarihi nasıl alabilirim?" * Tarih/saati her zaman UTC'de saklayın. Sadece görüntüleme amacıyla yerel saate dönüş. –