Jawaban:
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() );
Jika Anda perlu mendapatkan waktu UTC dari waktu tersebut, Anda dapat menggunakannya UTC().
setUTCHoursdaripada setHoursuntuk mendapatkan waktu Universal
setHoursberbahaya karena mengatur jam lokal, bukan jam UTC.
Menggunakan perpustakaan momentjs , ini dapat dicapai dengan startOf()dan endOf()metode pada objek tanggal saat ini saat ini, melewati string 'day'sebagai argumen:
GMT Lokal:
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()pada akhirnya untuk mendapatkan tanggalnya. var end = moment().endOf('day').toDate();
.unix()di akhir untuk mendapatkan cap waktu unix dalam hitungan detik :) seperti ini:moment().startOf('day').unix()
moment(new Date()).endOf("day");tidak bekerja, tetapi moment().endOf("day");bekerja.
moment-timezonedan melakukan hal ini: moment().tz('America/Chicago').startOf('day').toDate().
Menggunakan perpustakaan luxon.js , hal yang sama dapat dicapai dengan menggunakan metode startOf dan endOf dengan melewatkan 'hari' sebagai parameter
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
hapus .toUTC () jika Anda hanya membutuhkan waktu setempat
dan Anda mungkin bertanya mengapa tidak moment.js , jawabannya ada di sini untuk itu.
Dalam MomentJs Kita dapat mendeklarasikannya seperti:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
Jika Anda hanya tertarik pada cap waktu dalam GMT, Anda juga dapat melakukan ini, yang dapat disesuaikan dengan mudah untuk interval yang berbeda (jam:, 1000 * 60 * 6012 jam 1000 * 60 * 60 * 12:, dll.)
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 (versi gabungan Tvanfosson)
itu akan mengembalikan tanggal aktual => tanggal saat Anda memanggil fungsi
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()
}
}
// Cara Penggunaan
today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" *
* ini berlaku untuk tipe waktu Instan di Java8 yang mengubah waktu lokal Anda secara otomatis tergantung pada wilayah Anda. (jika Anda berencana menulis aplikasi global)
Saya lebih suka menggunakan perpustakaan tanggal-fns untuk memanipulasi tanggal. Ini adalah alat modular yang sangat bagus dan konsisten. Anda bisa memulai dan mengakhiri hari dengan cara ini:
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());untuk memastikan bahwa Anda memiliki titik waktu yang sama - jika Anda mengubah tanggal antara awal dan akhir inisialisasi - itu bisa terjadi - hanya kebiasaan yang baik untuk masuk