2016-03-22 10 views
3

Örneğin bir Javascript tarih nesnesi yapmak istiyorum. "Yarın sabah 8'de" için ayarlanmış olan var now = new Date().getTime(), bunu nasıl başarabilirim?Javascript: Yarına yeni bir tarih belirle 8 am

+2

Bir Tarih örneği yapın, ayın 1'ine 1 ekleyin, ardından saat, dakika, saniye ve milisaniyeyi ayarlayın. [Belgeler] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) – Pointy

+0

Geçerli tarihimin ayının 1 gününe nasıl ekleyebilirim? –

+0

Bunun için SO hakkında birçok soru var. Http://stackoverflow.com/questions/9444745/javascript-how-to-get-tomorrows-date-in-format-dd-mm-yy ve http://stackoverflow.com/questions/3818193/how-to sayfasına bakın. -add-gün-gün-date-date – Tushar

cevap

7

Aşağıdaki yapabilirdi:

var now = new Date(); 
now.setDate(now.getDate() + 1) 
now.setHours(8); 
now.setMinutes(0); 
now.setMilliseconds(0); 

da kontrol this

Ayrıca olabilir: var now = Date("2016-03-23T8:00:00");

Ve var now = new Date(2016,03,23,8,0,0,0);

+1

Eğer ilk kod bloğunuzu kullanırken yanılmıyorsam, dakikalar ve saniyeler geçerli olanlardır (yani alarm 17:35 olarak ayarlanmışsa, Bir sonraki gün saat 8: 35'te – Aaron

+0

numaralı telefonu çalacaksınız. Tamir edeceğim, teşekkürler! – Rana

+0

Hmm, MDN'ye göre, [setSeconds] ile milisaniye ayarlayabilirsiniz] (https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setSeconds), ancak [not diğer yoldan) (https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/setMilliseconds) – Aaron

3

Tarih aritmetiğin çok şey var, bunu yapabilecek Sadece moment.js kullanımını şiddetle tavsiye ederiz.

Bu kitaplığı kullanarak, kodunuz moment().add(1, 'days').hours(8).startOf('hour') kadar kısa olacaktır.

moment.js, ek yöntemler sağlamak için JS tarihlerine göre sarılmış 'an' nesneleriyle çalışır. moment() çağrısı, geçerli tarih bilgisinin bir anını döndürür, böylece moment, new Date()'a eşdeğerdir.
Buradan, moment tarihi yöntemlerini add(quantity, unit) olarak kullanarak bir önceki tarihe kadar süre ekleyebiliriz. Tüm bu manipülasyon metotları değiştirilmiş bir anı döndürür, bu da onları zincirleyebildiğimiz anlamına gelir.
hours() yöntemleri, bağımsız değişkenlerine bağlı olarak hem bir alıcı hem de ayarlayıcıdır; Burada bir sayı veriyoruz, bu da anın saat bölümünü 8 olarak ayarladığımız anlamına geliyor. .hours()'a yapılan çağrı bunun yerine geçerli saat bölümünü döndürecektir.
startOf(unit), birimin başlangıcında bir anı döndürür; yani, tüm daha düşük birimleri 0: moment().startOf('day') gününün 00: 00'a geri döndürecektir.

+0

Hiçbir moment.js etiketi yok, ne de soruda bahsediliyor, bu yüzden cevap sade js ** kullanmalı ve ** nasıl çalıştığını açıkla. – RobG

+0

Bu kuralları nereden alıyorsunuz? Yöntemlerin isimleriyle açıklanmayan ya da sağlanan bağlantıya hızlı bir şekilde kontrol edilmediğini açıklamak için ne var? Sade bir JS cevabı zaten Rana tarafından sağlanmıştı ve eğer yorumları kontrol edip düzenlerseniz onu daha iyi hale getirmeye çalıştım. Yapıcı eleştiri için hepim ama geri bildiriminizle çok şey yapamayacağımı sanmıyorum. – Aaron

+0

[* İyi bir cevabı nasıl yazarım? *] (Http://stackoverflow.com/help/how-to-answer). – RobG

İlgili konular