2015-12-03 11 views
7
let end: Date = new Date(); 
    let h: string = "13"; 
    let m: string = "20"; 
    moment(end).set({ hour: parseInt(h, 10), minute: parseInt(m, 10) }); 

Próbuję ustawić czas na istniejącą datę. jednak powyższa łania nie ustawia czasu w dniu. Czas zawsze przychodzi jako ... 00:00: ...moment.js ustawiony czas na istniejącą datę nie ustawia poprawnie czasu

Każdy pomysł?

Dzięki,

+2

'momencie (koniec)' sprawia, że ​​nowy obiekt moment z nową Data ukryta w środku. Zmiany w tym nie wpłyną na oryginalną instancję Date. – Pointy

Odpowiedz

14

Trzeba zamienić chwilę do Date i przypisać Date obiekt do end zmiennej:

end = moment(end) 
    .set({ hour: parseInt(h, 10), minute: parseInt(m, 10) }) 
    .toDate(); 
+0

Możesz przejść za pomocą 'parseInt (h)'. Domyślna podstawa to 10. – adolfosrs

+5

@adolfosrs [Zawsze określaj ten parametr, aby wyeliminować błąd czytelnika i zagwarantować przewidywalne zachowanie. Różne implementacje dają różne wyniki, gdy podstawa nie jest określona, ​​zwykle jest to wartość domyślna 10.] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt) – estus

Powiązane problemy