2015-12-03 19 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) }); 

Tôi đang cố gắng đặt thời gian vào ngày hiện tại. tuy nhiên, doe trên không thiết lập thời gian trong ngày. Thời gian luôn đến như ... 00:00: ...moment.js đặt giờ vào ngày hiện tại không đặt đúng thời gian

Có ý tưởng nào không?

Cảm ơn,

+2

'khoảnh khắc (kết thúc) 'làm cho một đối tượng Moment mới với một mới Ngày chôn bên trong nó. Các thay đổi đối với điều đó sẽ không ảnh hưởng đến phiên bản Date ban đầu. – Pointy

Trả lời

14

Bạn cần phải chuyển đổi khoảnh khắc của bạn đến một Date, và gán rằng Date đối tượng để end biến của bạn:

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

Bạn có thể chỉ với 'parseInt (h)'. Radix mặc định là 10. – adolfosrs

+5

@adolfosrs [Luôn chỉ định tham số này để loại bỏ sự nhầm lẫn của người đọc và để đảm bảo hành vi có thể dự đoán được. Các cách triển khai khác nhau tạo ra các kết quả khác nhau khi một cơ số không được chỉ định, thường mặc định giá trị là 10.] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/parseInt) – estus

Các vấn đề liên quan