Cara menggunakan DAYTE di JavaScript

Niguru. com. Sabtu, 12 Sep 2020. Pada postingan sebelumnya sudah dijelaskan bahwa dalam pembuatan aplikasi dimana user harus menginput data berupa tanggal atau waktu, biasanya di dalam program terdapat fungsi perhitungan yang menggunakan tanggal atau waktu.  


Postingan ini melanjutkan postingan sebelumnya yang sudah menjelaskan tentang operasional terkait tanggal. Jadi kali ini Niguru. com akan dilanjutkan dengan penjelasan terkait waktu


Untuk mendapatkan atau menuliskan nilai waktu, gunakan fungsi new Date() yang sudah dijelaskan pada postingan hari sebelumnya


Sedangkan untuk mendapatkan nilai waktu dari new Date() menggunakan atribut extended berikut

Mari berkenalan dengan objek bawaan yang baru. Tanggal. yang akan menyimpan tanggal, waktu dan menyediakan metode untuk manajemen tanggal/waktu

Misalnya, kita dapat menggunakannya untuk menghemat waktu pembuatan/modifikasi, untuk menghitung waktu atau hanya untuk melihat tanggal saat ini

Untuk membuat objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3 baru, panggil // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );4 dengan salah satu argumen di bawah ini

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_4

Tanpa argumen – membuat objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_3 untuk tanggal dan waktu saat ini

let now = new Date(); alert( now ); // tampilkan tanggal/waktu sekarang_

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_7

Membuat objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3 dengan waktu sama dengan milidetik (1/1000 detik) melewati 1 Januari 1970 UTC+0

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );

Bilangan bulat yang mewakili jumlah milidetik yang telah berlalu sejak awal tahun 1970 disebut stempel waktu

Ini adalah angka numerik ringan yang mewakili tanggal. Kami akan selalu dapat membuat tanggal dari stempel waktu menggunakan // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );9 dan mengubah objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3 yang ada menjadi stempel waktu dengan menggunakan metode let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)1 (lihat di bawah)

Tanggal sebelum 01. 01. 1970 memiliki stempel waktu negatif, misalnya

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );

let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)_2

Jika ada satu argumen, dan itu adalah sebuah string, maka itu akan diuraikan secara otomatis. Algoritmenya sama dengan yang digunakan let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)3, kita akan mempelajarinya nanti

let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)

let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)_4

Buat waktu dengan komponen yang diberikan dari zona waktu lokal. Hanya dua argumen pertama yang wajib

  • let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)_5 harus memiliki 4 digit. let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)_6 bisa, let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)7 tidak bisa
  • Perhitungan let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)_8 dimulai dari let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)9 (Jan), hingga new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 00 (Des)
  • Parameter new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 01 sebenarnya adalah hari dalam sebulan, jika tidak ada maka akan diasumsikan new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 02
  • Jika new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 0_3 tidak ada, mereka akan dianggap sama dengan let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)9

Contoh

new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 0

Presisi minimum adalah 1ms (1/1000 detik)

let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567

Ada beberapa metode untuk mengakses tahun, bulan, dan lainnya dari objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3

getFullYear() Mendapat tahun (4 digit) getMonth() Mendapat bulan, dari 0 sampai 11. getDate() mendapatkan hari dalam sebulan, dari 1 hingga 31, nama metodenya terlihat sedikit aneh. getHours(), getMinutes(), getSeconds(), getMilliseconds() Dapatkan komponen yang relevan

Bukan new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 06, Tapi new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 07

Banyak mesin Javascript menerapkan metode non-standar new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 06. Metode ini sudah usang. Itu terkadang mengembalikan tahun dengan 2 digit. Tolong jangan gunakan itu. Gunakan new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00 new Date(2011, 0, 1); // sama, jam dan yang lainnya secara default adalah 0_7 untuk tahun ini

Selain itu, kita bisa mendapatkan hari dalam seminggu

getDay() Dapatkan hari dalam seminggu, mulai dari let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)9 (Minggu) hingga let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.5671 (Sabtu). Hari pertama akan selalu menjadi hari Minggu, di beberapa negara bukan minggu, dan tidak dapat diubah

Semua metode di atas mengembalikan komponen yang sesuai dengan zona waktu lokal

Ada juga pasangan UTC, yang menampilkan hari dalam bulan, tahun, dan seterusnya untuk zona waktu UTC+0. getUTCFullYear(), getUTCMonth(), getUTCDay(). Cukup dengan memasukkan let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_2 tepat setelah let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.5673

Jika zona waktu lokal Anda diubah menjadi zona yang terkait dengan UTC, maka kode di bawah ini akan menunjukkan waktu yang berbeda

// tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );

Selain metode yang diberikan, ada dua metode khusus yang tidak memiliki variasi waktu UTC

getTime()

Mengembalikan stempel waktu untuk tanggal – sejumlah milidetik yang telah berlalu sejak 1 Januari 1970 UTC+0

getTimezoneOffset()

Mengembalikan selisih antara UTC dan zona waktu lokal, dalam hitungan menit

// jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );

Metode berikut memungkinkan kita untuk mengatur komponen tanggal/waktu

  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_4
  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_5
  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_6
  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_7
  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_8
  • let date = new Date(2011, 0, 1, 2, 3, 4, 567); alert( date ); // 1.01.2011, 02:03:04.567_9
  • // tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );_0
  • // tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );_1 (setel semua tanggal dengan milidetik sejak 01. 01. 1970 UTC)

Semua kecuali salah satunya adalah // tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );_2 memiliki varian UTC, misalnya. // tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );_3

Seperti yang bisa kita lihat, beberapa metode dapat mengatur beberapa komponen sekaligus, misalnya // tanggal sekarang let date = new Date(); // jam didalam zona waktu kamu sekarang alert( date.getHours() ); // jam di zona waktu UTC+0 (waktu london tanpa waktu musim panas) alert( date.getUTCHours() );4. Komponen yang tidak disebutkan tidak akan diubah

Contoh

let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:00

Koreksi otomatis adalah fitur yang sangat berguna dari objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3. Kita bisa menetapkan nilai yang di luar jangkauan, dan itu akan menyesuaikan sendiri

Contoh

let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!? alert(date); // ...adalah 1st Feb 2013!

komponen yang dapat dilepas yang berada di luar jangkauan akan diganti secara otomatis

Kita dapat mengatakan untuk menambahkan tanggal "28 feb 2016" menjadi 2 hari. Itu mungkin "2 Maret" atau "1 Maret" dalam kasus tahun kabisat. Kita tidak perlu memikirkan itu. Tinggal 2 hari lagi. Objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_3 akan melakukan sisanya

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );0

Fitur ini sering digunakan untuk mendapatkan tanggal setelah diberikan waktu tertentu, coba dapatkan tanggal "70 detik setelah momen ini"

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );1

Kami juga dapat menetapkan nilai nol atau bahkan negatif. Contoh

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );2

Ketika sebuah objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3 dikonversi menjadi angka, itu menjadi stempel waktu seperti let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)1

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );3

Efek yang perlu diperhatikan. tanggal bisa dikurangi, hasilnya selisih milidetik

Dapat digunakan untuk mengukur waktu

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );4

Jika kita ingin mengukur waktu, kita tidak membutuhkan benda // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3

Ada metode khusus // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );_0 yang mengembalikan stempel waktu saat ini

Itu praktis sama dengan // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );_1, tetapi tidak membuat objek perantara // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3. Sehingga lebih cepat dan tidak menambah beban pembuangan sampah

Sebagian besar dari mereka digunakan untuk kenyamanan atau ketika kinerja menjadi perhatian, seperti permainan di Javascript atau aplikasi khusus lainnya

Jadi ini mungkin lebih baik

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );5

Jika kita menginginkan kinerja yang andal dari fungsi-fungsi yang membutuhkan banyak sumber daya CPU, kita harus berhati-hati

Sebagai contoh, mari bandingkan dua fungsi yang menghitung selisih antara dua tanggal. mana yang lebih cepat?

Pengurangan kinerja seperti itu sering disebut sebagai "tolok ukur"

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );6

kedua fungsi tersebut melakukan hal yang persis sama, tetapi salah satunya menggunakan let date = new Date("2017-01-26"); alert(date); // Waktunya belum di set, jadi itu diasumsikan tengah malam GMT dan // disesuaikan menurut zona waktu dimana kodenya berjalan // Jadi hasilnya mungkin bisa // Kamis Jan 26 2017 11:00:00 GMT+1100 (Waktu timur siang hari Australia ) // atau // Rabu Jan 25 2017 16:00:00 GMT-0800 (Waktu standar pasifik)1 secara eksplisit untuk mendapatkan tanggal dalam milidetik, dan yang lainnya menggunakan konversi tanggal ke angka. Hasil mereka akan selalu sama

Jadi, mana yang lebih cepat?

Cara sederhana mungkin dengan menjalankannya beberapa kali dan menghitung perbedaan waktu. Untuk kasus ini, fungsinya sangat sederhana, jadi kita hanya perlu melakukannya minimal 100.000 kali

Mari berhitung

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );7

Wow. Menggunakan // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );_4 lebih cepat. itu karena tidak ada perubahan tipe, itu akan membuat mesin lebih mudah untuk dioptimalkan

Oke, kita punya sesuatu. Tapi itu bukan tes kemampuan yang bagus

Bayangkan pada saat menjalankan // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );5 CPU melakukan hal lain, dan itu menghabiskan sumber dayanya. Dan pada saat menjalankan // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );_6 pekerjaan selesai

Skenario nyata untuk Sistem Operasi multi-proses modern

Akibatnya, uji kemampuan pertama memiliki lebih sedikit sumber daya CPU daripada yang kedua. Itu dapat menyebabkan hasil yang menyesatkan

Untuk pengujian yang lebih andal, seluruh pengujian harus dijalankan beberapa kali

Contoh, seperti ini

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );_8

Mesin Javascript modern mulai menggunakan optimasi tinggi hanya untuk "kode panas" yang dieksekusi beberapa kali (tidak perlu optimasi hal-hal yang jarang dieksekusi). Jadi, pada contoh di atas, eksekusi pertama tidak benar-benar dioptimalkan. Kita mungkin perlu menambahkan pemanasan

// 0 berarti 01.01.1970 UTC+0 let Jan01_1970 = new Date(0); alert( Jan01_1970 ); // sekarang tambahkan 24 jam, ambil 02.01.1970 UTC+0 let Jan02_1970 = new Date(24 * 3600 * 1000); alert( Jan02_1970 );_9

Berhati-hatilah saat melakukan microbenchmarking/pengujian kemampuan mikro

Mesin Javascript modern melakukan banyak optimasi. mereka mungkin merekayasa hasil dari "pengujian buatan" dibandingkan dengan "penggunaan normal", terutama saat kita mengukur kemampuan sesuatu yang sangat kecil, seperti cara kerja operator, atau fungsi bawaan. Jadi jika Anda serius ingin memahami kinerja, pelajari cara kerja mesin Javascript. dan kemudian Anda mungkin tidak memerlukan microbenchmarking sama sekali

Kumpulan artikel bagus tentang V8 dapat ditemukan di http. //mrale. ph

Metode tanggal. parse(str) dapat membaca tanggal dari sebuah string

Bentuk string harus. // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );7, di mana

  • // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );8 – adalah tanggal. tahun-bulan-hari
  • Karakter dari // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );9 digunakan sebagai pembatas
  • let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:000 – adalah waktu. jam, menit, detik, dan milidetik
  • Bagian opsional let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:001 menunjukkan zona waktu dalam format let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:002. Satu huruf let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:00_3 menunjukkan UTC+0

Varian yang lebih pendek juga dimungkinkan, seperti // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );8 atau let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:005 atau bahkan let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:006

Memanggil let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:007 memproses string dalam bentuk yang diberikan dan mengembalikan stempel waktu (angka dalam milidetik dari 1 Januari 1970 UTC+0). Jika formatnya tidak valid, akan mengembalikan let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:008

Contoh

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );0

Kita dapat langsung membuat objek let today = new Date(); today.setHours(0); alert(today); // masih hari ini, tapi jamnya diubah menjadi 0 today.setHours(0, 0, 0, 0); alert(today); // masih hari ini, tapi tepat 00:00:00_9 dari timestamp

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_1

  • Tanggal dan waktu dalam Javascript diwakili oleh objek Tanggal. Kami tidak dapat membuat "hanya tanggal" atau "hanya waktu". objek // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_3 selalu membawa keduanya
  • Bulan dihitung dari nol (ya, Januari adalah bulan ke nol)
  • Hari dalam seminggu di let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!? alert(date); // ...adalah 1st Feb 2013!_1 juga dihitung dari nol (yaitu satu minggu)
  • // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3 secara otomatis mengoreksi dirinya sendiri ketika komponen di luar jangkauan disetel. Baik untuk menambah/mengurangi hari/bulan/jam
  • Tanggal dapat dikurangi, memberikan perbedaan dalam milidetik. Itu karena // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_3 menjadi stempel waktu saat dikonversi menjadi angka
  • Gunakan // jika kamu berada didalam zona waktu UTC-1, mengeluarkan 60 // jika kamu berada di zona waktu UTC+3, mengeluarkan -180 alert( new Date().getTimezoneOffset() );_0 untuk mendapatkan stempel waktu dengan cepat

Perhatikan bahwa tidak seperti sistem lain, stempel waktu dalam Javascript dalam milidetik, bukan detik

Terkadang kita menginginkan pengukuran yang lebih akurat. Javascript sendiri tidak mendukung cara mengukur waktu dalam mikrodetik (1 juta per detik), tetapi sebagian besar lingkungan menyediakannya. Misalnya, browser memiliki kinerja. now() yang memberikan jumlah milidetik dari awal halaman dimuat dengan presisi mikrodetik (3 digit setelah titik)

// 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );_2

Node. js memiliki modul let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!? alert(date); // ...adalah 1st Feb 2013!_5 dan cara lain. Secara teknis, hampir sebagian besar perangkat dan lingkungan memungkinkan untuk mendapatkan presisi, hanya saja tidak di // 31 Dec 1969 let Dec31_1969 = new Date(-24 * 3600 * 1000); alert( Dec31_1969 );3

Postingan terbaru

LIHAT SEMUA