2016-04-12 5 views
0

Kafamı klavyeye karşı yaklaşık bir gün boyunca becermeye çalışıyorum, bu sefer momentlerle anlamaya çalışıyorum.Neden yılın başlangıcı Moment.js 31 Aralık'ta?

Ben isteği

Sonra var now = moment().valueOf();

arayarak geldi süresini ayarlayan bir API bitiş noktası var, sadece sonra

moment(now).startOf('year');

arayarak yılın başlangıcını bulur DB'mizi bir testteki test verileriyle yaklaşık 48 saat sürerken, veritabanında ayarlanan zaman damgasının 31 Aralık 2015 (1451624400000) olduğunu fark ettim.

Programı yerel olarak çalıştırdığımda zaman damgası 1 Ocak 2016'dır (1451635200000).

Ben varyansını bulmak için bir test komut dosyası oluşturmak, sunucularımıza giriş ve çıkış log

, zaman damgası 2016

Hiçbir şey API içinde bu bir yöntemle hariç zaman dokunuyor, 1 Ocak olduğunu .

Momsimlerin yılın başlangıcının 31 Aralık 2015 olduğunu düşünmesinin bir nedeni var mı? Eğer öyleyse, onu nasıl değiştirebilirim? Şu ana kadar bu konuda herhangi bir yardım bulamadı ve moment.js dokümanları yılın başlangıcı olan yılın 1 Ocak'ının açıkça olduğunu söylediler.

+1

Saat dilimi bir şey olabilir mi? 31 Aralık'taki günün saati nedir? –

+1

Sadece tarih değil, tüm zaman damgasını kaydederseniz, lütfen örnekleri gönderin, bu genellikle sunucunun UTC –

+0

@AndrewMorton arasındaki zaman farkından kaynaklanır, ekli saat 31 Aralık 2015 Perşembe saat 21:00:00 GMT-0800 (PST) – traviswingo

cevap

0

Yardımlarınız için teşekkürler. Her şeyden önce bir saat dilimi sorunu olduğu için oldu. Birkaç şeye bakıyordum ve kendimi tutarlı bir şekilde test ettiğime inandım.

Ben Böyle bir varyans gelecek önlenmesi için ek olarak NTP sunucularını ayarlarını yapacak

sudo dpkg-reconfigure tzdata

ile Ubuntu makinelerde dilimini yapılandırmak zorunda kaldı.

0

Bu sorunun bir süredir etrafta olduğunu biliyorum.

Benzer bir sorunla karşılaştım ve buna çözüm, sonucu biçimlendiriyor.

var startOfThisYear = moment().startOf('year').format();