Mengatur tanggal bulan dan tahun dalam javascript

Untuk menambahkan bulan ke tanggal dalam JavaScript, Anda dapat menggunakan Tanggal. metode setMonth(). Metode setMonth() tanggal JavaScript menetapkan bulan untuk tanggal yang ditentukan menurut waktu setempat. Metode ini mengambil dua parameter pertama adalah jumlah bulan dan parameter kedua adalah jumlah hari. Penghitungan bulan dimulai dari 0, misalnya 0 mewakili Januari, 1 mewakili Februari. dan seterusnya

Sintaksis

Date.setMonth(monthsValue , [daysValue]);

Catatan - Parameter dalam braket selalu opsional

Detail Parameter

  • monthValue − Bilangan bulat antara 0 dan 11, mewakili bulan. Meskipun kita juga bisa menggunakan angka yang lebih besar dari 11 atau kurang dari 0. Misalnya, -1 mewakili bulan terakhir tahun sebelumnya, dan 12 mewakili bulan pertama tahun berikutnya

  • daysValue − Bilangan bulat antara 1 dan 31, mewakili hari dalam sebulan. Jika Anda menentukan parameter daysValue, Anda juga harus menentukan monthValue. Anda juga dapat menentukan angka yang lebih besar dari 31 dan kurang dari 1. Misalnya, 0 mewakili hari terakhir bulan sebelumnya, dan -1 mewakili hari sebelum hari terakhir bulan sebelumnya. 32 melambangkan hari pertama bulan berikutnya

Algoritma

LANGKAH 1 - Pertama kita mendapatkan tanggal saat ini atau menentukan tanggal dan menampilkannya

LANGKAH 2 - Selanjutnya kita mendapatkan bulan dari tanggal saat ini menggunakan metode getMonth()

LANGKAH 3 - Tentukan jumlah bulan yang akan ditambahkan

LANGKAH 4 - Tetapkan bulan dari tanggal menggunakan setMonth() dan tampilkan tanggal yang diperbarui

Untuk menambahkan bulan ke objek Tanggal menggunakan metode setMonth pertama kita mendapatkan nilai bulan dari Tanggal saat ini menggunakan metode getMonth() dan kemudian menambahkan beberapa bulan ke dalamnya dan meneruskan nilai tambah ke metode setMonth()

Contoh

Dalam contoh di bawah ini, kami menambahkan 3 bulan ke tanggal saat ini, dan menampilkan tanggal saat ini, dan tanggal yang diperbarui. Kami menggunakan metode getMonth() dan setMonth() untuk mendapatkan bulan saat ini dan menetapkan bulan baru

   
      

Add 3 months to the current date/time.

Current Date :

Updated Date:

_

Contoh

Pada contoh di bawah ini, kami mengambil tanggal sebagai "20 Agustus 2023 11. 30. 25". Kami menambahkan dua bulan ke tanggal ini. Kami menampilkan keduanya- tanggal sebelumnya dan yang diperbarui

   
      

Add 2 months to the current date/time.

Old Date :

Updated Date:

Contoh

Dalam contoh ini, kami menambahkan 4 bulan ke Tanggal saat ini. Kami menampilkan tanggal saat ini dan yang diperbarui dalam format MM/DD/YYYY


   
      

Click on the button to add 4 months to the current date (MM/DD/YYYY).

Click Me

Current Date :

Updated Date:

Catatan - Format tanggal adalah MM/DD/YYYY

Dalam tutorial ini, kita telah membahas cara menambahkan bulan ke tanggal. Kami menggunakan dua metode untuk tujuan ini. Salah satunya adalah metode getMonth() untuk mendapatkan bulan dari tanggal tersebut. Dan yang kedua adalah metode setMonth() untuk mengatur bulan dari tanggal dengan bulan baru

Mari temui objek bawaan baru. Tanggal. Ini menyimpan tanggal, waktu dan menyediakan metode untuk manajemen tanggal/waktu

Misalnya, kita dapat menggunakannya untuk menyimpan waktu pembuatan/modifikasi, untuk mengukur waktu, atau hanya untuk mencetak 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 berikut

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

Tanpa argumen – buat 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 ); // shows current date/time
_

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

Buat objek

// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
_3 dengan waktu yang sama dengan jumlah milidetik (1/1000 detik) yang berlalu setelah 1 Januari 1970 UTC+0

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 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 representasi numerik ringan dari sebuah tanggal. Kami selalu dapat membuat tanggal dari stempel waktu menggunakan

// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
9 dan mengonversi objek
// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
3 yang ada menjadi stempel waktu menggunakan metode
let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
1 (lihat di bawah)

Tanggal sebelum 01. 01. 1970 memiliki stempel waktu negatif, mis. g

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

let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
_2

Jika ada satu argumen, dan itu adalah sebuah string, maka itu akan diuraikan secara otomatis. Algoritmanya sama dengan

let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
_3 yang digunakan, kita akan membahasnya nanti

let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)

let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
_4

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

  • let date = new Date("2017-01-26");
    alert(date);
    // The time is not set, so it's assumed to be midnight GMT and
    // is adjusted according to the timezone the code is run in
    // So the result could be
    // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
    // or
    // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
    _5 harus memiliki 4 digit. Untuk kompatibilitas, 2 digit juga diterima dan dianggap
    let date = new Date("2017-01-26");
    alert(date);
    // The time is not set, so it's assumed to be midnight GMT and
    // is adjusted according to the timezone the code is run in
    // So the result could be
    // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
    // or
    // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
    6, e. g.
    let date = new Date("2017-01-26");
    alert(date);
    // The time is not set, so it's assumed to be midnight GMT and
    // is adjusted according to the timezone the code is run in
    // So the result could be
    // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
    // or
    // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
    _7 sama dengan
    let date = new Date("2017-01-26");
    alert(date);
    // The time is not set, so it's assumed to be midnight GMT and
    // is adjusted according to the timezone the code is run in
    // So the result could be
    // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
    // or
    // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
    8 di sini, tetapi selalu menggunakan 4 digit sangat dianjurkan
  • Hitungan
    let date = new Date("2017-01-26");
    alert(date);
    // The time is not set, so it's assumed to be midnight GMT and
    // is adjusted according to the timezone the code is run in
    // So the result could be
    // Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
    // or
    // Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
    _9 dimulai dengan
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    0 (Jan), hingga
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    1 (Des)
  • Parameter
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    _2 sebenarnya adalah hari dalam sebulan, jika tidak ada maka
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    3 diasumsikan
  • Jika
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    _4 tidak ada, mereka dianggap sama dengan
    new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
    new Date(2011, 0, 1); // the same, hours etc are 0 by default
    0

Contohnya

new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // the same, hours etc are 0 by default

Presisi maksimal adalah 1 ms (1/1000 detik)

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

Ada metode untuk mengakses tahun, bulan, dan seterusnya dari objek

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

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

Bukan

new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // the same, hours etc are 0 by default
7, tapi
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // the same, hours etc are 0 by default
8

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); // the same, hours etc are 0 by default
7. Metode ini sudah usang. Terkadang mengembalikan 2 digit tahun. Tolong jangan pernah menggunakannya. Ada
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // the same, hours etc are 0 by default
_8 untuk tahun ini

Selain itu, kita bisa mendapatkan hari dalam seminggu

getDay()Dapatkan hari dalam seminggu, dari
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 Jan 2011, 00:00:00
new Date(2011, 0, 1); // the same, hours etc are 0 by default
0 (Minggu) hingga
let date = new Date(2011, 0, 1, 2, 3, 4, 567);
alert( date ); // 1.01.2011, 02:03:04.567
2 (Sabtu). Hari pertama selalu hari Minggu, di beberapa negara tidak demikian, tetapi tidak dapat diubah

Semua metode di atas mengembalikan komponen relatif ke zona waktu lokal

Ada juga mitra UTC mereka, yang mengembalikan hari, bulan, tahun, dan seterusnya untuk zona waktu UTC+0. getUTCFullYear(), getUTCMonth(), getUTCDay(). Cukup masukkan

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

Jika zona waktu lokal Anda bergeser relatif terhadap UTC, maka kode di bawah menunjukkan jam yang berbeda

// current date
let date = new Date();

// the hour in your current time zone
alert( date.getHours() );

// the hour in UTC+0 time zone (London time without daylight savings)
alert( date.getUTCHours() );

Selain metode yang diberikan, ada dua metode khusus yang tidak memiliki varian UTC

getTime()

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

getTimezoneOffset()

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

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );

Metode berikut memungkinkan 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
    _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
  • // current date
    let date = new Date();
    
    // the hour in your current time zone
    alert( date.getHours() );
    
    // the hour in UTC+0 time zone (London time without daylight savings)
    alert( date.getUTCHours() );
    0
  • // current date
    let date = new Date();
    
    // the hour in your current time zone
    alert( date.getHours() );
    
    // the hour in UTC+0 time zone (London time without daylight savings)
    alert( date.getUTCHours() );
    1
  • // current date
    let date = new Date();
    
    // the hour in your current time zone
    alert( date.getHours() );
    
    // the hour in UTC+0 time zone (London time without daylight savings)
    alert( date.getUTCHours() );
    2 (menetapkan seluruh tanggal dalam milidetik sejak 01. 01. 1970 UTC)

Setiap dari mereka kecuali

// current date
let date = new Date();

// the hour in your current time zone
alert( date.getHours() );

// the hour in UTC+0 time zone (London time without daylight savings)
alert( date.getUTCHours() );
_3 memiliki varian UTC, misalnya.
// current date
let date = new Date();

// the hour in your current time zone
alert( date.getHours() );

// the hour in UTC+0 time zone (London time without daylight savings)
alert( date.getUTCHours() );
4

Seperti yang dapat kita lihat, beberapa metode dapat mengatur beberapa komponen sekaligus, misalnya

// current date
let date = new Date();

// the hour in your current time zone
alert( date.getHours() );

// the hour in UTC+0 time zone (London time without daylight savings)
alert( date.getUTCHours() );
5. Komponen yang tidak disebutkan tidak dimodifikasi

Contohnya

let today = new Date();

today.setHours(0);
alert(today); // still today, but the hour is changed to 0

today.setHours(0, 0, 0, 0);
alert(today); // still today, now 00:00:00 sharp.

Koreksi otomatis adalah fitur yang sangat berguna dari

// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
3 objek. Kami dapat menetapkan nilai di luar jangkauan, dan itu akan menyesuaikan sendiri secara otomatis

Contohnya

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

Komponen tanggal di luar jangkauan didistribusikan secara otomatis

Katakanlah kita perlu menambah tanggal "28 Feb 2016" menjadi 2 hari. Mungkin "2 Mar" atau "1 Mar" dalam kasus tahun kabisat. Kita tidak perlu memikirkannya. Tambah 2 hari saja. Objek

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

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_0

Fitur tersebut sering digunakan untuk mendapatkan tanggal setelah jangka waktu tertentu. Misalnya, mari dapatkan tanggal untuk "70 detik setelah sekarang"

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 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. Sebagai contoh

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_2

Ketika objek

// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
_3 dikonversi menjadi angka, itu menjadi stempel waktu yang sama dengan
let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
1

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_3

Efek samping yang penting. tanggal dapat dikurangi, hasilnya adalah selisihnya dalam ms

Itu bisa digunakan untuk pengukuran waktu

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_4

Jika kita hanya ingin mengukur waktu, kita tidak memerlukan objek

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

Ada metode khusus

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
1 yang mengembalikan stempel waktu saat ini

Ini secara semantik setara dengan

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
2, tetapi tidak membuat objek perantara
// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
3. Jadi lebih cepat dan tidak menekan pengumpulan sampah

Ini digunakan sebagian besar untuk kenyamanan atau ketika kinerja penting, seperti dalam game di JavaScript atau aplikasi khusus lainnya

Jadi ini mungkin lebih baik

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_5

Jika kita menginginkan tolok ukur yang andal dari fungsi yang membutuhkan CPU, kita harus berhati-hati

Misalnya, mari kita ukur dua fungsi yang menghitung selisih antara dua tanggal. mana yang lebih cepat?

Pengukuran kinerja seperti itu sering disebut "tolok ukur"

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_6

Keduanya melakukan hal yang persis sama, tetapi salah satunya menggunakan

let date = new Date("2017-01-26");
alert(date);
// The time is not set, so it's assumed to be midnight GMT and
// is adjusted according to the timezone the code is run in
// So the result could be
// Thu Jan 26 2017 11:00:00 GMT+1100 (Australian Eastern Daylight Time)
// or
// Wed Jan 25 2017 16:00:00 GMT-0800 (Pacific Standard Time)
1 eksplisit untuk mendapatkan tanggal dalam ms, dan yang lainnya bergantung pada transformasi tanggal ke angka. Hasil mereka selalu sama

Jadi, mana yang lebih cepat?

Ide pertama mungkin menjalankannya berkali-kali berturut-turut dan mengukur perbedaan waktu. Untuk kasus kami, fungsinya sangat sederhana, jadi kami harus melakukannya setidaknya 100.000 kali

Mari mengukur

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_7

Wow. Menggunakan

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
_5 jauh lebih cepat. Itu karena tidak ada konversi jenis, lebih mudah bagi mesin untuk mengoptimalkan

Oke, kita punya sesuatu. Tapi itu belum menjadi patokan yang bagus

Bayangkan pada saat menjalankan

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
6 CPU sedang melakukan sesuatu secara paralel, dan mengambil sumber daya. Dan pada saat berjalan
// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
_7 pekerjaan itu telah selesai

Skenario yang cukup nyata untuk OS multi-proses modern

Akibatnya, tolok ukur pertama akan memiliki lebih sedikit sumber daya CPU daripada tolok ukur kedua. Itu dapat menyebabkan hasil yang salah

Untuk pembandingan yang lebih andal, seluruh paket pembandingan harus dijalankan ulang beberapa kali

Misalnya seperti ini

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_8

Mesin JavaScript modern mulai menerapkan pengoptimalan lanjutan hanya untuk "kode panas" yang dieksekusi berkali-kali (tidak perlu mengoptimalkan hal yang jarang dieksekusi). Jadi, pada contoh di atas, eksekusi pertama tidak dioptimalkan dengan baik. Kami mungkin ingin menambahkan pemanasan

// 0 means 01.01.1970 UTC+0
let Jan01_1970 = new Date(0);
alert( Jan01_1970 );

// now add 24 hours, get 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert( Jan02_1970 );
_9

Hati-hati melakukan microbenchmarking

Mesin JavaScript modern melakukan banyak pengoptimalan. Mereka mungkin men-tweak hasil "pengujian buatan" dibandingkan dengan "penggunaan normal", terutama saat kami membandingkan sesuatu yang sangat kecil, seperti cara kerja operator, atau fungsi bawaan. Jadi jika Anda serius ingin memahami kinerja, silakan pelajari cara kerja mesin JavaScript. Dan kemudian Anda mungkin tidak membutuhkan microbenchmark sama sekali

Paket artikel hebat tentang V8 dapat ditemukan di https. //mrale. ph

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

Format string seharusnya.

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
8, di mana

  • // if you are in timezone UTC-1, outputs 60
    // if you are in timezone UTC+3, outputs -180
    alert( new Date().getTimezoneOffset() );
    _9 – adalah tanggal. tahun bulan hari
  • Karakter
    let today = new Date();
    
    today.setHours(0);
    alert(today); // still today, but the hour is changed to 0
    
    today.setHours(0, 0, 0, 0);
    alert(today); // still today, now 00:00:00 sharp.
    _0 digunakan sebagai pembatas
  • let today = new Date();
    
    today.setHours(0);
    alert(today); // still today, but the hour is changed to 0
    
    today.setHours(0, 0, 0, 0);
    alert(today); // still today, now 00:00:00 sharp.
    _1 – adalah waktunya. jam, menit, detik, dan milidetik
  • Bagian
    let today = new Date();
    
    today.setHours(0);
    alert(today); // still today, but the hour is changed to 0
    
    today.setHours(0, 0, 0, 0);
    alert(today); // still today, now 00:00:00 sharp.
    2 opsional menunjukkan zona waktu dalam format
    let today = new Date();
    
    today.setHours(0);
    alert(today); // still today, but the hour is changed to 0
    
    today.setHours(0, 0, 0, 0);
    alert(today); // still today, now 00:00:00 sharp.
    3. Satu huruf
    let today = new Date();
    
    today.setHours(0);
    alert(today); // still today, but the hour is changed to 0
    
    today.setHours(0, 0, 0, 0);
    alert(today); // still today, now 00:00:00 sharp.
    _4 berarti UTC+0

Varian yang lebih pendek juga dimungkinkan, seperti

// if you are in timezone UTC-1, outputs 60
// if you are in timezone UTC+3, outputs -180
alert( new Date().getTimezoneOffset() );
9 atau
let today = new Date();

today.setHours(0);
alert(today); // still today, but the hour is changed to 0

today.setHours(0, 0, 0, 0);
alert(today); // still today, now 00:00:00 sharp.
6 atau bahkan
let today = new Date();

today.setHours(0);
alert(today); // still today, but the hour is changed to 0

today.setHours(0, 0, 0, 0);
alert(today); // still today, now 00:00:00 sharp.
7

Panggilan ke

let today = new Date();

today.setHours(0);
alert(today); // still today, but the hour is changed to 0

today.setHours(0, 0, 0, 0);
alert(today); // still today, now 00:00:00 sharp.
8 mem-parsing string dalam format yang diberikan dan mengembalikan stempel waktu (jumlah milidetik dari 1 Jan 1970 UTC+0). Jika formatnya tidak valid, kembalikan ________55______9

Contohnya

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

Kita dapat langsung membuat objek

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

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

  • Tanggal dan waktu dalam JavaScript direpresentasikan dengan objek Tanggal. Kami tidak dapat membuat "hanya tanggal" atau "hanya waktu".
    // 31 Dec 1969
    let Dec31_1969 = new Date(-24 * 3600 * 1000);
    alert( Dec31_1969 );
    _3 objek selalu membawa keduanya
  • Bulan dihitung dari nol (ya, Januari adalah bulan nol)
  • Hari dalam seminggu di
    let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!?
    alert(date); // ...is 1st Feb 2013!
    _2 juga dihitung dari nol (itu hari Minggu)
  • // 31 Dec 1969
    let Dec31_1969 = new Date(-24 * 3600 * 1000);
    alert( Dec31_1969 );
    _3 mengoreksi sendiri secara otomatis saat komponen di luar jangkauan ditetapkan. Baik untuk menambah/mengurangi hari/bulan/jam
  • Tanggal dapat dikurangi, memberikan selisihnya 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
    // if you are in timezone UTC-1, outputs 60
    // if you are in timezone UTC+3, outputs -180
    alert( new Date().getTimezoneOffset() );
    _1 untuk mendapatkan stempel waktu saat ini dengan cepat

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

Terkadang kita membutuhkan pengukuran waktu yang lebih tepat. JavaScript sendiri tidak memiliki cara untuk mengukur waktu dalam mikrodetik (sepersejuta detik), tetapi sebagian besar lingkungan menyediakannya. Misalnya, browser memiliki kinerja. now() yang memberikan jumlah milidetik dari awal pemuatan halaman 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); // ...is 1st Feb 2013!
6 dan cara lain. Secara teknis, hampir semua perangkat dan lingkungan memungkinkan untuk mendapatkan lebih banyak presisi, hanya saja tidak di
// 31 Dec 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert( Dec31_1969 );
3

Bagaimana cara mendapatkan nama bulan dan tahun dari tanggal di JavaScript?

// Membuat objek tanggal var hari ini = new Date('2021-10-06'); . g. "Okt") var bulan = hari ini. toLocaleString('default', { bulan. 'pendek' }); . log(bulan); Untuk menentukan opsi tetapi menggunakan lokal default browser, gunakan 'default'.

Bagaimana cara mengatur bulan dalam tanggal JavaScript?

setMonth() Metode setMonth() menyetel bulan untuk tanggal yang ditentukan sesuai dengan tahun yang saat ini disetel.

Apa format tanggal dd mm yyyy dalam JavaScript?

Bagaimana cara membuat tanggal dari hari bulan tahun di JavaScript?

Bulan dimulai dari 0. Anda harus menggunakan ini. var d = Tanggal baru(2016, 11, 17); . 5 Desember 2016 pukul 19. 40
Dalam Objek Tanggal Javascript, bulan berbasis 0. Jadi 0 artinya Januari, 11 artinya Desember. coba var d = Tanggal baru (2016, 11, 17, 0, 0, 0, 0); . – Hiren. 5 Desember 2016 pukul 19. 42