2016-06-13 20 views
5

Bir GÜN/SAAT'i karşılaştırmaya çalışıyorum örn. Pazartesi saat 09:00 da, şimdiki haftada bu noktayı geçip geçmediğimi görmek için. Örneğin. Pazartesi günü geç 05:00:00 ise o ancak aşağıdaki benzer soruları bulundu ama zaman biçimlendirme sonra sorunu gidermek için görünmüyordu sahte her şey2 tarihin momentJS ile karşılaştırılması

var dayTime = Moment("Wednesday 17:00:00", "dddd HH:mm:ss"); 
var now = Moment(Moment.now(), "dddd HH:mm:ss"); 
console.log(Moment.utc(dayTime).isBefore(now)); //returns false all the time 

dönüyor gerçek dönmelidir. Ben gibi bir dize ile moment.now() değiştirdiğinizde

Comparing two times with Moment JS

"Çarşamba 17:00:00" beklenen sonuç döndürür.

Bunun düzgün çalışması için moment.now()'a ne yapmam gerekiyor?

+0

İstediğiniz Anı üretmek için moment (moment.now(), "dddd HH: mm: ss") 'beklemem; moment.now(), bir dönme zamanı temsilini döndürür ve tamamen farklı bir biçim dizesinde geçiyorsunuz. Sadece moment (moment.now()) 'yi deneyin – Hamms

+1

moment.now hiç kullanılmamalıdır. Bu, genel API'nin bir parçası olmayan bir uzantı noktasıdır. şimdiki zamanı almak için sadece anı ara() –

cevap

2

.

Düzeltmek için Gün ve Saati ayırdım ve anı ayarlayın. Sonra şimdi ile karşılaştırdı. Örneğin.

moment().set({"Day": "Friday", "Hour": "17"}).isBefore(moment()) 
6

Moment.now bir uzantı noktası olarak kullanılabilir, ancak bu bir genel API değildir. Şu anki anı yakalamak için sadece moment()'u ara. Tüm an aramaların moment numaralı küçük harfleri kullandığını unutmayın.

Tarih ve saat şimdiki zamandan önce ise, sadece çağırır görmek için:

moment('01/01/2016', 'MM/DD/YYYY').isBefore(moment()) 

Kendi ile söz konusu tarih ve biçimini değiştirmek istiyorum.

Sadece haftanın gününü ve saatini içeren bir tarih biçiminiz olduğunu görüyorum. Moment bunu ayrıştırır, ancak davranışların beklediğiniz gibi olmayabilir. Tarihinizi ayrıştırdığımda, 30 Aralık 2015 Çarşamba günü alacağım. Tam olarak hangi gün süreceğine göre, yerele göre değişir. Her durumda, istediğin şeyin olduğundan şüpheliyim. Mümkünse yıl, ay ve gün alırdım.

Bu anı bu hafta Çarşambaya ayarlamak istiyorsanız, o andaki günü .day() kullanarak ayarlayın. Mesela: Soruma gönderilmiş kod gün/saat değişiyordu ama geçmişte hep anlamına geliyordu 2015 yılı batıyordu, ilgi duyan herkes için

moment().day(3).format() 
"2016-06-15T20:19:55-05:00" 
+0

Bunun için teşekkürler ama bu benim problemime cevap vermiyor. Bir gün/zamanım var (yıl yok) ve şu anda bir hafta içinde o noktadan sonra mı yoksa sonra mı olduğumu öğrenmek isterim. Daha fazla baktıktan sonra (ve yorumunuz) gün nedeniyle yanlış döndükçe saat her zaman geçmişte bir yıl veriliyor - bunun üzerinden nasıl geçilir? – Geraint

İlgili konular