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. Show 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 3 baru, panggil 4 dengan salah satu argumen di bawah ini _4Tanpa argumen – membuat objek _3 untuk tanggal dan waktu saat ini _ _7Membuat objek 3 dengan waktu sama dengan milidetik (1/1000 detik) melewati 1 Januari 1970 UTC+0
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 9 dan mengubah objek 3 yang ada menjadi stempel waktu dengan menggunakan metode 1 (lihat di bawah)Tanggal sebelum 01. 01. 1970 memiliki stempel waktu negatif, misalnya
_2Jika ada satu argumen, dan itu adalah sebuah string, maka itu akan diuraikan secara otomatis. Algoritmenya sama dengan yang digunakan 3, kita akan mempelajarinya nanti
_4Buat waktu dengan komponen yang diberikan dari zona waktu lokal. Hanya dua argumen pertama yang wajib
Contoh
Presisi minimum adalah 1ms (1/1000 detik)
Ada beberapa metode untuk mengakses tahun, bulan, dan lainnya dari objek 3getFullYear() 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 relevanBukan Banyak mesin Javascript menerapkan metode non-standar 6. Metode ini sudah usang. Itu terkadang mengembalikan tahun dengan 2 digit. Tolong jangan gunakan itu. Gunakan _7 untuk tahun iniSelain itu, kita bisa mendapatkan hari dalam seminggu getDay() Dapatkan hari dalam seminggu, mulai dari 9 (Minggu) hingga 1 (Sabtu). Hari pertama akan selalu menjadi hari Minggu, di beberapa negara bukan minggu, dan tidak dapat diubahSemua 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 _2 tepat setelah 3Jika zona waktu lokal Anda diubah menjadi zona yang terkait dengan UTC, maka kode di bawah ini akan menunjukkan waktu yang berbeda
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
Metode berikut memungkinkan kita untuk mengatur komponen tanggal/waktu
Semua kecuali salah satunya adalah _2 memiliki varian UTC, misalnya. _3Seperti yang bisa kita lihat, beberapa metode dapat mengatur beberapa komponen sekaligus, misalnya 4. Komponen yang tidak disebutkan tidak akan diubahContoh
Koreksi otomatis adalah fitur yang sangat berguna dari objek 3. Kita bisa menetapkan nilai yang di luar jangkauan, dan itu akan menyesuaikan sendiriContoh
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 _3 akan melakukan sisanya 0Fitur ini sering digunakan untuk mendapatkan tanggal setelah diberikan waktu tertentu, coba dapatkan tanggal "70 detik setelah momen ini" 1Kami juga dapat menetapkan nilai nol atau bahkan negatif. Contoh 2Ketika sebuah objek 3 dikonversi menjadi angka, itu menjadi stempel waktu seperti 1 3Efek yang perlu diperhatikan. tanggal bisa dikurangi, hasilnya selisih milidetik Dapat digunakan untuk mengukur waktu 4Jika kita ingin mengukur waktu, kita tidak membutuhkan benda 3Ada metode khusus _0 yang mengembalikan stempel waktu saat iniItu praktis sama dengan _1, tetapi tidak membuat objek perantara 3. Sehingga lebih cepat dan tidak menambah beban pembuangan sampahSebagian besar dari mereka digunakan untuk kenyamanan atau ketika kinerja menjadi perhatian, seperti permainan di Javascript atau aplikasi khusus lainnya Jadi ini mungkin lebih baik 5Jika 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" 6kedua fungsi tersebut melakukan hal yang persis sama, tetapi salah satunya menggunakan 1 secara eksplisit untuk mendapatkan tanggal dalam milidetik, dan yang lainnya menggunakan konversi tanggal ke angka. Hasil mereka akan selalu samaJadi, 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 7Wow. Menggunakan _4 lebih cepat. itu karena tidak ada perubahan tipe, itu akan membuat mesin lebih mudah untuk dioptimalkanOke, kita punya sesuatu. Tapi itu bukan tes kemampuan yang bagus Bayangkan pada saat menjalankan 5 CPU melakukan hal lain, dan itu menghabiskan sumber dayanya. Dan pada saat menjalankan _6 pekerjaan selesaiSkenario 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 _8Mesin 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 _9Berhati-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. 7, di mana
Varian yang lebih pendek juga dimungkinkan, seperti 8 atau 5 atau bahkan 6Memanggil 7 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 8Contoh 0Kita dapat langsung membuat objek _9 dari timestamp _1
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) _2Node. js memiliki modul _5 dan cara lain. Secara teknis, hampir sebagian besar perangkat dan lingkungan memungkinkan untuk mendapatkan presisi, hanya saja tidak di 3 |