Làm cách nào để thêm 10 giây vào đối tượng ngày JavaScript?
Một cái gì đó như thế này:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Làm cách nào để thêm 10 giây vào đối tượng ngày JavaScript?
Một cái gì đó như thế này:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Câu trả lời:
Cũng có một setSeconds
phương pháp:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Để biết danh sách các Date
chức năng khác , bạn nên kiểm tra MDN
setSeconds
sẽ xử lý chính xác các trường hợp bao quanh:
var d;
d = new Date('2014-01-01 10:11:55');
alert(d.getMinutes() + ':' + d.getSeconds()); //11:55
d.setSeconds(d.getSeconds() + 10);
alert(d.getMinutes() + ':0' + d.getSeconds()); //12:05
typeof new Date().getSeconds()
trả về 'number'
trong nút, vì vậy tôi nghĩ rằng bạn có thể có các vấn đề khác (trừ khi bạn đang ở phiên bản lỗi thời của nút hoặc một cái gì đó).
d.setSeconds(d.getSeconds() - 92);
và bạn sẽ kết thúc với chênh lệch 2'32 "thay vì 1'32". Các giải pháp với new Date(d.getTime() - 92*1000);
công trình tuy nhiên!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Chỉ dành cho những kẻ cuồng biểu diễn trong số chúng ta.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / giây, nhanh nhất
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / giây, chậm hơn 43%
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22,549 Ops / giây, chậm hơn 100%
Vì vậy, có lẽ nó ít người đọc nhất (không tệ lắm) nhưng là cách nhanh nhất :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Ngoài ra, vui lòng tham khảo: Làm cách nào để thêm 30 phút vào đối tượng Ngày JavaScript?
var timestamp = Date.parse("2011-03-26T20:59:59.999Z"); var d = new Date(timestamp); d.setSeconds(d.getSeconds() + 10); console.log(d.getTime() - timestamp);
timeObject.setSeconds(timeObject.getSeconds() + 10)
Đối Date()
tượng trong javascript không thực sự thông minh.
Nếu bạn chỉ tập trung vào việc thêm giây thì có vẻ như sẽ xử lý mọi việc trơn tru nhưng nếu bạn cố gắng thêm số X của giây thì thêm số X và phút, v.v., vào cùng một Date
đối tượng bạn sẽ gặp rắc rối. Vì vậy, tôi chỉ đơn giản là quay lại chỉ sử dụng setSeconds()
phương thức và chuyển đổi dữ liệu của mình thành giây (hoạt động tốt).
Nếu bất cứ ai cũng có thể chứng minh việc thêm thời gian cho một Date()
đối tượng toàn cầu bằng cách sử dụng tất cả các phương thức đã đặt và có thời gian cuối cùng xuất hiện chính xác thì tôi muốn xem nhưng tôi có cảm giác rằng một phương thức tập hợp sẽ được sử dụng tại một thời điểm trên một Date()
đối tượng nhất định và trộn chúng dẫn đến một mớ hỗn độn.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
bạn có thể sử dụng setSeconds
phương pháp bằng cách nhận được vài giây từ hôm nay và chỉ cần thêm 10 giây vào đó
var today = new Date();
today.setSeconds(today.getSeconds() + 10);
Bạn có thể thêm 10 * 1000 mili giây vào ngày mới:
var today = new Date();
today = new Date(today.getTime() + 1000*10);
Bạn có thể sử dụng setTime
:
today.setTime(now.getTime() + 10000)
Hãy thử cách này.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Chỉ cần gọi và chỉ định new Date().addSeconds(10)