ฉันจะเพิ่ม 10 วินาทีในวัตถุวันที่ของ JavaScript ได้อย่างไร
บางสิ่งเช่นนี้
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
ฉันจะเพิ่ม 10 วินาทีในวัตถุวันที่ของ JavaScript ได้อย่างไร
บางสิ่งเช่นนี้
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
คำตอบ:
มีsetSecondsวิธีการเช่นกัน:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
สำหรับรายการฟังก์ชั่นอื่น ๆ คุณควรตรวจสอบ MDNDate
setSeconds จะจัดการกรณีที่ล้อมรอบอย่างถูกต้อง:
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()ส่งคืนเป็น'number'โหนดดังนั้นฉันคิดว่าคุณอาจมีปัญหาอื่น ๆ (ยกเว้นว่าคุณอยู่ในโหนดรุ่นเก่าหรือบางสิ่ง)
d.setSeconds(d.getSeconds() - 92);แล้วคุณจะได้ความแตกต่าง 2'32 "แทนที่จะเป็น 1'32" วิธีแก้ปัญหาด้วยnew Date(d.getTime() - 92*1000);งาน แต่!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
เพียงเพื่อการแสดงที่บ้าคลั่งในหมู่พวกเรา
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5,196,949 Ops / วินาทีเร็วที่สุด
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2,936,604 Ops / วินาทีช้ากว่า 43%
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22,549 Ops / วินาทีช้ากว่า 100%
ดังนั้นอาจเป็นมนุษย์ที่อ่านได้น้อย (ไม่เลว) แต่เป็นวิธีที่เร็วที่สุดที่จะไป :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
นอกจากนี้โปรดอ้างอิง: วิธีเพิ่ม 30 นาทีไปยังวัตถุวันที่ 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);
ลองสิ่งนี้
a = new Date();
a.setSeconds(a.getSeconds() + 10);
timeObject.setSeconds(timeObject.getSeconds() + 10)
ฉันมีคู่สายพันธุ์ใหม่
var t = new Date(Date.now() + 10000);var t = new Date(+new Date() + 10000);Date()วัตถุใน JavaScript ไม่ว่าสมาร์ทจริงๆ
หากคุณเพียงแค่มุ่งเน้นไปที่การเพิ่มวินาทีดูเหมือนว่าจะจัดการกับสิ่งต่าง ๆ ได้อย่างราบรื่น แต่ถ้าคุณพยายามที่จะเพิ่มจำนวน X วินาทีจากนั้นเพิ่มจำนวน X นาทีและชั่วโมง ฯลฯ ไปยังDateวัตถุเดียวกันที่คุณประสบปัญหา ดังนั้นฉันเพียงแค่กลับไปใช้setSeconds()วิธีการเท่านั้นและแปลงข้อมูลของฉันเป็นวินาที (ซึ่งทำงานได้ดี)
หากทุกคนสามารถสาธิตการเพิ่มเวลาให้กับDate()วัตถุทั่วโลกโดยใช้วิธีการตั้งค่าทั้งหมดและมีเวลาออกมาอย่างถูกต้องฉันต้องการที่จะเห็นมัน แต่ฉันรู้สึกว่าวิธีการตั้งค่าอย่างใดอย่างหนึ่งจะถูกใช้ในเวลาบนDate()วัตถุที่กำหนดและ ผสมพวกเขานำไปสู่ความยุ่งเหยิง
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
คุณสามารถใช้setSecondsวิธีการโดยรับวินาทีจากวันนี้และเพียงเพิ่ม 10 วินาทีในนั้น
var today = new Date();
today.setSeconds(today.getSeconds() + 10);คุณสามารถเพิ่ม 10 * 1,000 มิลลิวินาทีในวันที่ใหม่:
var today = new Date();
today = new Date(today.getTime() + 1000*10);คุณสามารถใช้setTime:
today.setTime(now.getTime() + 10000)ลองด้วยวิธีนี้
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
เพียงแค่โทรและกำหนด new Date().addSeconds(10)