2013-05-29 12 views
12

C'è un modo per concatenare le funzioni di data javascript?Come concatenare alle funzioni di data javascript

per esempio, vorrei qualcosa di simile:

var d = new Date().setMinutes(0).setSeconds(0).setMilliseconds(0); 

questa sintassi rompe con errore:

(new Date).setMinutes(0).setSeconds is not a function 

So che posso fare questo:

var d = new Date(); 
d.setMinutes(0); 
d.setSeconds(0); 
d.setMilliseconds(0); 

ma questo sembra prolisso e ingombrante. C'è un modo migliore?

+1

Sì. http://momentjs.com/ – SLaks

+0

Bello. Grazie. Avevo visto JodaTime per Java e pensavo che esistesse una libreria equivalente in Javascript. – MyTimeFinder

risposta

7

È possibile impostare secondi e msec con il metodo setMinutes:

var d = new Date(); 
d.setMinutes(0,0,0); 

funziona anche con ore- d.setHours(0,0,0,0);

+1

Suppongo che la risposta sia "no", non si può concatenare, ma non sapevo che setHours (e apparentemente setFullYear) può assumere più parametri. È un lavoro ragionevole per ciò di cui ho bisogno. – MyTimeFinder

3

È possibile passare i parametri a Date constructor. Per esempio.

var d = new Date(null, null, null, null, 0, 0, 0); 
+0

@kennebec Cosa vorresti che fosse la data effettiva? –

+1

Questa sarebbe la migliore risposta se si passa "null" per default all'anno, mese, data corrente. Tuttavia, sembra che questo mi avrebbe dato il 31 dicembre 1899. Di solito sto cercando di manipolare le date relative alla data in cui l'utente interagisce con il mio sito web. Non so che giorno sarà, ma voglio mezzogiorno quel giorno o 5 giorni a mezzogiorno da quel giorno. d.setHours (16,0,0,0) per impostare qualcosa per quel giorno alle 4:00 pm è il mio scenario più comune. – MyTimeFinder

0

Questa domanda è piuttosto vecchio, ma è possibile combinare la risposta di Kennebec con Yuriy di per falla una sola riga se lo desideri:

var d = new Date(new Date().setMinutes(0,0,0)) 
Problemi correlati