วิธีเริ่มต้น (00:00:00) และสิ้นสุด (23:59:59) ของวันนี้ในเวลาประทับ (GMT) คอมพิวเตอร์ใช้เวลาท้องถิ่น
วิธีเริ่มต้น (00:00:00) และสิ้นสุด (23:59:59) ของวันนี้ในเวลาประทับ (GMT) คอมพิวเตอร์ใช้เวลาท้องถิ่น
คำตอบ:
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date();
end.setHours(23,59,59,999);
alert( start.toUTCString() + ':' + end.toUTCString() );
หากคุณต้องการที่จะได้รับเวลา UTC UTC()จากนั้นคุณสามารถใช้
setUTCHoursแทนsetHoursรับ Universal time
setHoursเป็นสิ่งที่อันตรายเนื่องจากกำหนดเวลาท้องถิ่นไม่ใช่ชั่วโมง UTC
การใช้ไลบรารีmomentjsสามารถทำได้ด้วยวิธีstartOf()และendOf()บนวัตถุวันที่ปัจจุบันของช่วงเวลาผ่านสตริง'day'เป็นอาร์กิวเมนต์:
ท้องถิ่น GMT:
var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today
var start = moment.utc().startOf('day');
var end = moment.utc().endOf('day');
.toDate()ในท้ายที่สุดเพื่อให้ได้วันที่ var end = moment().endOf('day').toDate();
.unix()ในตอนท้ายเพื่อรับ unix timestamp ในไม่กี่วินาที :) เช่นนี้:moment().startOf('day').unix()
moment(new Date()).endOf("day");ไม่ทำงาน แต่moment().endOf("day");ทำงานได้
moment-timezone moment().tz('America/Chicago').startOf('day').toDate()
การใช้ห้องสมุดluxon.jsสามารถทำได้เหมือนกันโดยใช้วิธีการ startOf และ endOf โดยส่งผ่าน 'วัน' เป็นพารามิเตอร์
var DateTime = luxon.DateTime;
DateTime.local().startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
DateTime.local().endOf('day').toUTC().toISO(); //2017-11-17T18:29:59.999Z
DateTime.fromISO(new Date().toISOString()).startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
ลบ. toUTC () หากคุณต้องการเฉพาะเวลาท้องถิ่น
ในMomentJsเราสามารถประกาศได้เช่น:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
หากคุณสนใจเวลาประทับใน GMTคุณสามารถทำได้เช่นกันซึ่งสามารถปรับเปลี่ยนให้สะดวกสำหรับช่วงเวลาต่าง ๆ (ชั่วโมง: 1000 * 60 * 60, 12 ชั่วโมง: 1000 * 60 * 60 * 12, ฯลฯ )
const interval = 1000 * 60 * 60 * 24; // 24 hours in milliseconds
let startOfDay = Math.floor(Date.now() / interval) * interval;
let endOfDay = startOfDay + interval - 1; // 23:59:59:9999
FYI (เวอร์ชันรวมของ Tvanfosson)
มันจะส่งกลับวันที่จริง => วันที่เมื่อคุณกำลังเรียกฟังก์ชั่น
export const today = {
iso: {
start: () => new Date(new Date().setHours(0, 0, 0, 0)).toISOString(),
now: () => new Date().toISOString(),
end: () => new Date(new Date().setHours(23, 59, 59, 999)).toISOString()
},
local: {
start: () => new Date(new Date(new Date().setHours(0, 0, 0, 0)).toString().split('GMT')[0] + ' UTC').toISOString(),
now: () => new Date(new Date().toString().split('GMT')[0] + ' UTC').toISOString(),
end: () => new Date(new Date(new Date().setHours(23, 59, 59, 999)).toString().split('GMT')[0] + ' UTC').toISOString()
}
}
// วิธีใช้
today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" *
* ใช้ได้กับประเภทเวลาทันทีบน Java8 ซึ่งแปลงเวลาท้องถิ่นของคุณโดยอัตโนมัติขึ้นอยู่กับภูมิภาคของคุณ (หากคุณวางแผนที่จะเขียนแอพทั่วโลก)
ฉันชอบที่จะใช้ห้องสมุดdate-fnsสำหรับจัดการวันที่ มันเป็นเครื่องมือแบบแยกส่วนและยอดเยี่ยมจริงๆ คุณสามารถเริ่มต้นและสิ้นสุดของวันด้วยวิธีนี้:
var startOfDay = dateFns.startOfDay;
var endOfDay = dateFns.endOfDay;
console.log('start of day ==> ', startOfDay(new Date('2015-11-11')));
console.log('end of day ==> ', endOfDay(new Date('2015-11-11')));
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>
var end = new Date(start.getTime());เพื่อให้แน่ใจว่าคุณมีเวลาเท่ากัน - ในกรณีที่คุณเปลี่ยนวันระหว่างการเริ่มต้นและสิ้นสุดการเริ่มต้น - มันสามารถเกิดขึ้นได้ - เป็นนิสัยที่ดีที่จะเข้ามา