JavaScript Dapatkan waktu dan tanggal saat ini. TempusJS - bekerja dengan tanggal dalam javascript Mengubah tanggal menggunakan set

Jarang sekali seorang programmer menghindari bekerja dengan tanggal dan waktu. Secara umum, tanggal/waktu adalah konsep dasar, dan sebagian besar bahasa memiliki mekanisme bawaan untuk bekerja dengan tipe data ini. Tampaknya JS tidak terkecuali, ada tipe Tanggal bawaan, ada banyak fungsi dalam prototipe, namun...

Siapa yang harus disalahkan Masalah pertama muncul ketika Anda perlu mengatur tanggal/waktu di zona waktu selain UTC dan lokal. Konstruktor Tanggal tidak memiliki parameter seperti itu.

Tanggal Baru(); Tanggal baru(nilai); Tanggal baru(dateString); Tanggal baru(tahun, bulan[, hari[, jam[, menit[, detik[, milidetik]]]]]);
Satu-satunya pilihan di mana Anda dapat menentukan offset relatif terhadap UTC adalah metode ketiga. Memanggil konstruktor dalam format ini memungkinkan Anda meneruskan offset sebagai bagian dari string:

Tanggal Baru("Minggu 01 Feb 1998 00:00:00 GMT+0700")
String diterima dalam format RFC2822, yang sangat merepotkan dan sulit untuk dimasukkan secara manual. Hampir tidak mungkin mendapatkan string seperti itu dari input pengguna. Saya tidak dapat membayangkan ada orang yang setuju untuk memasukkan tanggal dalam format ini.

Meskipun pada Tanggal Anda dapat mengatur semua parameter secara terpisah untuk zona waktu UTC, ini tidak menyelesaikan masalah - zona waktu akan tetap lokal. Tapi ini bukan satu-satunya masalah.

Offset relatif terhadap UTC bukanlah suatu konstanta. Ini adalah fungsi dari tanggal, waktu (atau stempel waktu, jika Anda mau) dan, sekali lagi, zona waktu. Misalnya, untuk Moskow, konversi waktu terkini menghasilkan:

Tanggal Baru (2014, 9, 25, 0, 0, 0); // 26/10/2014, 21:00:00 GMT+3 Tanggal baru(2014, 9, 27, 0, 0, 0); // 25.10.2014, 22:00:00 GMT+4
Dengan demikian, konstruktor pada opsi ketiga menjadi praktis tidak berguna karena offsetnya harus diketahui terlebih dahulu. Dan, seperti yang telah dikatakan, hal itu tidak dapat diperoleh dengan begitu saja. Satu-satunya perpustakaan yang saya temui yang menggunakan database Olson untuk menghitung shift adalah zona waktu-JS. Masalah dengan menggunakan perpustakaan ini adalah bahwa perpustakaan yang mendasarinya (pemilih tanggal/waktu) tidak mengetahui apa pun tentangnya dan secara aktif menggunakan Tanggal standar secara internal. Pustaka lain yang bekerja dengan objek Tanggal tidak secara eksplisit mereferensikan database ini dan tidak menerima pembaruan darinya. (Perbaiki saya di komentar.)

Dalam aplikasi bisnis, zona waktu hanya masuk akal jika tanggal dan waktu ditentukan. Misalnya, jika hari kerja dimulai pada pukul 9:00, kemungkinan besar Anda tidak mengharapkan kolega Anda dari Vladivostok akan mulai bekerja pada pukul 15:00. Zona waktu tidak boleh diperhitungkan dan dalam hal ini tanggal harus ditampilkan dalam UTC. Namun, jika peristiwa rutin terjadi pada satu titik waktu di zona waktu berbeda, zona waktu tetap diperlukan. Misalnya, scrum harian Anda dimulai pada pukul 10:00 untuk Anda dan pukul 13:00 untuk Novosibirsk. Omong-omong, inilah perbedaan antara GMT dan UTC. UTC adalah waktu tanpa offset, dan GMT adalah waktu dengan offset 0. Mari saya jelaskan dengan sebuah contoh:

31/12/2014, 20:59:59 GMT di zona waktu Moskow akan terlihat seperti 31/12/2014, 23:59:59 31/12/2014, 20:59:59 UTC di zona waktu Moskow akan terlihat seperti 31/12/2014, 20:59 :59
Karena aritmatika ini, mereka menjadi bingung. Sayangnya, terdapat kebingungan dengan parameter ini di mana-mana. Tidak adanya indikasi langsung zona waktu di JS diartikan sebagai zona waktu lokal, dan indikasi UTC dan GMT setara.

Intl dapat membantu dalam situasi ini. Aku bisa, tapi aku tidak harus melakukannya. Secara khusus, ada parameter TimeZone, tetapi sedikit lebih jauh standarnya mendefinisikan: Zona waktu yang akan digunakan. Satu-satunya implementasi nilai yang harus dikenali adalah "UTC". Saat ini, selain Chrome, tidak ada browser lain yang mendukung zona waktu arbitrer.
Dengan rentang waktu di JS semuanya benar-benar buruk - tidak ada yang seperti itu dalam bahasa tersebut. Jika Anda ingin melakukannya dengan baik, lakukanlah sendiri.

Apa yang harus dilakukan
  • Opsi 1. Jangan gunakan zona waktu khusus. Pilihan ini lebih disukai dan mungkin yang paling tidak menimbulkan rasa sakit. Artinya, Anda hanya memiliki zona waktu lokal dan UTC. Untuk kasus ini, semua browser tampaknya memiliki segalanya, meskipun itu tidak terlalu nyaman. Selain itu, zona waktu diatur secara global untuk OS dan mengubahnya untuk aplikasi web tertentu tidaklah halal.
  • Opsi 2. Jika zona waktu sewenang-wenang diperlukan, jangan gunakan stempel waktu. Sama sekali. Simpan waktu di bank tabungan dalam garis RFC yang menunjukkan zona waktu. Saya tidak yakin ini akan membantu mengatasi pergeseran zona waktu dalam pemahaman lintas-browser, tapi setidaknya Chrome menyadari pergeseran tersebut.
  • Opsi 3. Situasinya berbeda dan waktu dicatat dalam database dari perangkat apa pun. Artinya, dalam bentuk stempel waktu. Tidak ada tempat untuk berlari di sini; untuk menampilkan waktu dengan benar, Anda perlu mengetahui zona waktu perangkat, atau zona waktu pengguna, atau keduanya, dan menghitung semua pergeseran secara manual. Anda tidak dapat melakukan ini tanpa menggunakan markas Olson.
  • Seharusnya ada pesan moral dalam cerita ini, tapi tidak ada lagi yang perlu saya tambahkan untuk saat ini. Saya tidak melihat adanya kemajuan dalam rancangan standar ECMA, dan mungkin juga tidak akan ada kemajuan.

Objek Tanggal memungkinkan Anda bekerja dengan tanggal dan waktu. Untuk membuat objek Tanggal baru, gunakan sintaks berikut:

Tanggal Baru()

Tanggal disimpan di dalamnya sebagai jumlah milidetik yang telah berlalu sejak tengah malam pada tanggal 1 Januari 1970 menurut Waktu Universal (UTC). Format ini memungkinkan Tanggal untuk secara akurat mewakili tanggal yang berjarak 285.616 tahun dari 1 Januari 1970.

Jika konstruktor Tanggal dipanggil tanpa argumen, sebuah objek dibuat dengan nilai tanggal dan waktu saat ini. Untuk membuat objek Tanggal dengan tanggal atau waktu tertentu, Anda harus memasukkan salah satu dari empat parameter yang mungkin:

  • milidetik: nilai harus berupa jumlah milidetik sejak 01/01/1970 var tanggal lahir = Tanggal baru(8298400000); document.write(Tanggal lahir);
  • string tanggal: tanggal apa pun dalam format yang didukung oleh metode parse() varbirthDate = new Date("April 16, 1975"); document.write(Tanggal lahir);
  • tahun, bulan, hari var tanggal lahir = Tanggal baru(1975, 4, 28); document.write(Tanggal lahir);

    Perlu diketahui bahwa angka 4 berhubungan dengan bulan Mei. Artinya Januari sama dengan angka 0. Hari dihitung dengan cara yang sama, hanya dalam hal ini hari Minggu sama dengan nol.

  • tahun, bulan, hari, jam, menit, detik, milidetik

Saat bekerja dengan objek Tanggal, penting untuk diingat bahwa penghitungan dilakukan menggunakan Waktu Universal (UTC), meskipun komputer Anda mungkin menampilkan waktu sesuai dengan zona waktu Anda.

Metode Deskripsi Metode
dapatkanTanggal()Mengembalikan hari dalam sebulan (dari 1 hingga 31) untuk tanggal yang ditentukan, waktu setempat.
dapatkan hari()Mengembalikan hari dalam seminggu (0 hingga 6; 0 = Minggu, 1 = Senin, dll.) untuk tanggal yang ditentukan dalam waktu setempat.
dapatkanSetahun Penuh()Mengembalikan tahun (empat digit).
dapatkanJam()Mengembalikan jam (dari 0 hingga 23).
dapatkanMilidetik()Mengembalikan milidetik (dari 0 hingga 999).
dapatkan Menit()Mengembalikan menit (dari 0 hingga 59).
dapatkan Bulan()Mengembalikan bulan (dari 0 hingga 11; 0 = Januari, 1 = Februari, dll.).
dapatkan Detik()Mengembalikan detik (dari 0 hingga 59).
dapatkanWaktu()Mengembalikan jumlah milidetik yang telah berlalu sejak tengah malam pada 01/01/1970.
dapatkanTimezoneOffset()Mengembalikan perbedaan waktu antara waktu UTC dan waktu lokal, dalam hitungan menit.
dapatkanUTCDate()Mengembalikan hari dalam sebulan dalam UTC (dari 1 hingga 31).
dapatkanUTCDay()Mengembalikan hari dalam seminggu dalam Waktu Universal (dari 0 hingga 6).
dapatkanUTCSetahun Penuh()Mengembalikan tahun dalam Waktu Universal (empat digit).
dapatkanUTCHours()Mengembalikan jam dalam Waktu Universal (0 hingga 23).
dapatkanUTCMilidetik()Mengembalikan milidetik dalam Waktu Universal (dari 0 hingga 999).
dapatkanUTCMinutes()Mengembalikan menit dalam Waktu Universal (0 hingga 59).
dapatkanUTCBulan()Mengembalikan bulan dalam UTC (dari 0 hingga 11).
dapatkanUTCSeconds()Mengembalikan detik dalam Waktu Universal (dari 0 hingga 59).
menguraikan()Mengurai string tanggal (misalnya, "21 Mei 1992") dan mengembalikan string nilai tanggal yang berisi angka dalam milidetik sejak 1 Januari 1970 00:00:00.
Atur tanggal()Menetapkan hari dalam sebulan untuk tanggal yang ditentukan dalam waktu setempat (dari 1 hingga 31).
setTahun Penuh()Menetapkan tahun (empat digit).
setJam()Mengatur jam untuk tanggal yang ditentukan menurut waktu setempat (0 hingga 23).
setMilidetik()Menyetel milidetik untuk tanggal yang ditentukan ke waktu lokal.
setMenit()Mengatur menit (dari 0 hingga 59).
setBulan()Mengatur bulan (dari 0 hingga 11).
setSeconds()Mengatur detik (dari 0 hingga 59).
Atur waktu()Menetapkan tanggal dalam milidetik setelah (atau sebelum) 01/01/1970.
setUTCDate()Menentukan hari dalam sebulan.
setUTCTahun Penuh()Mengatur tahun berdasarkan waktu universal (empat digit).
setUTCHours()Menetapkan jam untuk tanggal yang ditentukan dalam Waktu Universal.
setUTCMillidetik()Menetapkan milidetik untuk tanggal tertentu dalam Waktu Universal.
setUTCMinutes()Menetapkan menit untuk tanggal tertentu dalam Waktu Universal.
setUTCBulan()Menetapkan bulan untuk tanggal yang ditentukan dalam Waktu Universal.
setUTCSeconds()Menyetel detik untuk tanggal tertentu dalam Waktu Universal.
toDateString()
keISOString()Mengonversi tanggal menjadi string menggunakan standar ISO 8601.
keJSON()Mengembalikan tanggal sebagai string, diformat sebagai tanggal JSON.
keLocaleDateString()
keLocaleTimeString()Mengembalikan bagian tanggal sebagai string, dengan representasi tanggal berdasarkan pengaturan sistem.
keLocaleString()Mengembalikan tanggal sebagai string, dengan representasi tanggal berdasarkan parameter sistem.
keString()Mengembalikan string yang mewakili objek Tanggal yang ditentukan.
keTimeString()Mengembalikan bagian tanggal sebagai string.
keUTCString()Mengonversi tanggal menjadi string menggunakan zona waktu UTC.
UTC()Mengambil parameter yang sama dengan konstruktor formulir panjang (yaitu 2-7) dan mengembalikan jumlah milidetik sejak 1 Januari 1970, 00:00:00 UTC.
Nilai dari()Mengembalikan nilai primitif objek Tanggal.

Untuk bekerja dengan tanggal dan waktu di JavaScript, ada objek khusus - Tanggal. Objek ini didukung oleh hampir semua versi JavaScript, dan Anda dapat menggunakannya tanpa mengkhawatirkan masalah kompatibilitas.

Tanggal dan waktu di objek Date tidak disimpan secara eksplisit, tetapi seperti di kebanyakan bahasa pemrograman - sebagai jumlah milidetik yang telah berlalu sejak lahirnya Unix, yaitu. dari 0 jam 0 menit 1 Januari 1970. Ciri khas objek Date adalah semua nilai rentang memiliki indeks yang dimulai dari nol. Artinya bulan Januari akan memiliki indeks 0 (bulan #0), dan Desember bukanlah bulan kedua belas, melainkan bulan kesebelas. Hal yang sama berlaku untuk hari dalam seminggu, jam, menit, dll.

Membuat objek Tanggal sangat sederhana:

// tanggal-waktu saat ini var tanggal = Tanggal baru(); // tanggal-waktu dari string atau angka var date = new Date(date); // tanggal-waktu dari nilai individual var tanggal = Tanggal baru(tahun, bulan, hari, jam, menit, detik, milidetik);

Objek Tanggal memiliki sejumlah metode yang sangat berguna yang memungkinkan Anda bekerja dengan masing-masing komponen tanggal-waktu, serta memeriksa validitas dan menampilkan tanggal dengan benar dalam format tertentu.

Metode untuk mengambil komponen tanggal-waktu
dapatkan Tahun Penuh Mengembalikan tahun (misalnya, 2011).
dapatkanTahun Mengembalikan tahun. Tujuan dari metode getYear mirip dengan tujuan getFullYear, namun metode ini sudah usang dan tidak disarankan untuk digunakan, karena hasil kerjanya tidak jelas: untuk rentang tanggal 1900 hingga 1999, metode ini mengembalikan nomor tahun dalam abad tersebut (dua digit, misalnya 77), dan untuk tanggal di luar rentang ini, metode ini mengembalikan nilai penuh (empat -digit, misalnya 2009).
dapatkan Bulan Mengembalikan bulan.
dapatkan Tanggal Mengembalikan hari dalam sebulan (hari dalam bulan).
dapatkan Jam Mengembalikan jam.
dapatkan Menit Mengembalikan menitnya.
dapatkan Detik Mengembalikan yang kedua.
dapatkanMilidetik Mengembalikan milidetik.
dapatkan hari Mengembalikan nomor hari dalam seminggu.
dapatkanWaktu Mengembalikan offset milidetik yang disimpan oleh objek.
Metode untuk mengubah komponen tanggal-waktu
setTahun Penuh Menetapkan tahun.
setTahun Menetapkan tahun. Tujuan dari metode setYear mirip dengan tujuan setFullYear, namun metode ini tidak digunakan lagi dan tidak direkomendasikan untuk digunakan (seperti halnya metode getYear).
setBulan Menetapkan bulan.
Atur tanggal Menetapkan tanggal dalam bulan (hari dalam sebulan).
setJam Mengatur jamnya.
setMenit Mengatur menitnya.
setSeconds Tetapkan yang kedua.
setMilidetik Mengatur milidetik.
Atur waktu Menyetel offset milidetik relatif terhadap 00:00:00 01/01/1970
Pemformatan tanggal-waktu dan fungsi tampilan
keString Mengembalikan representasi string tanggal dan waktu.
keUTCString Mengembalikan representasi string tanggal dan waktu, dikonversi ke UTC. Format string yang dikembalikan mematuhi semua standar Internet.
keGMTString Mengembalikan representasi string tanggal dan waktu, dikonversi ke GMT (Greenwich Mean Time). Format string yang dikembalikan mematuhi semua standar Internet.
keLocaleString Mirip dengan toString, tetapi mengembalikan representasi string tanggal dan waktu, diformat sesuai dengan pengaturan lokal pengguna tertentu.
keTimeString Mengembalikan representasi string waktu (string hanya berisi waktu).
toDateString Mengembalikan representasi string suatu tanggal (string hanya berisi tanggal).
keLocaleTimeString Mirip dengan toTimeString, tetapi mengembalikan representasi string waktu yang diformat sesuai dengan pengaturan lokal pengguna.
keLocaleDateString Mirip dengan toDateString, tetapi mengembalikan representasi string tanggal, diformat sesuai dengan pengaturan lokal pengguna.
Fungsi tambahan
dapatkanTimezoneOffset Mengembalikan offset waktu lokal di komputer pengguna relatif terhadap waktu UTC. Offset dikembalikan dalam hitungan menit.
menguraikan Fungsi ini memungkinkan Anda memeriksa kebenaran tanggal-waktu yang ditulis sebagai string. Jika stringnya benar, objek Tanggal akan segera dibuat.

Objek Tanggal juga berisi sejumlah metode untuk bekerja dengan tanggal UTC. Fungsi-fungsi ini sangat mirip dengan yang telah dibahas, tetapi mengandung awalan “UTC” pada namanya dan hanya berfungsi dengan waktu “universal”: getUTCSeconds, setUTCFullYear, dll.

Mari kita lihat contoh bekerja dengan tanggal:

var tmp = Tanggal baru(sekarang.getTime()); var arrNames = new Array("Hari ini", "Besok", "1 tahun 6 bulan 15 hari"); var arrNormal = Array baru(); var arrLokal = Array baru(); var arrUTC = Array baru(); // sekarang arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // besok tmp.setDate(tmp.getDate() + 1); arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // dalam 1 tahun 6 bulan 15 hari tmp.setFullYear(tmp.getFullYear() + 1); tmp.setMonth(tmp.getMonth() + 6); tmp.setDate(tmp.getDate() + 15); arrLocal = tmp.toLocaleString(); arrNormal = tmp.toString(); arrUTC = tmp.toUTCString(); // keluarkan hasilnya ke tabel document.write("

" + "" + "" + "" + ""); untuk (saya = 0; saya< 3; i++) { document.write("" + " + " + " + " + ""); ) dokumen.tulis("
tanggalTerlokalisasiTidak terlokalisasiUTC
" + arrNama[i] + "" + arrLokal[i] + "" + arrNormal[i] + "" + arrUTC[i] + "
");

Dan inilah hasil scriptnya:


Seperti yang Anda lihat, penyajian tanggal sangat berbeda tergantung pada format yang digunakan. Oleh karena itu, saat bekerja dengan tanggal-waktu, Anda perlu mengikuti beberapa aturan sederhana:

1. Jika memungkinkan, gunakan format UTC atau GMT. Hal ini sangat penting ketika membuat solusi terdistribusi (misalnya, klien sistem pembayaran). Menggunakan waktu referensi yang sama akan memberi Anda jaminan (walaupun tidak seratus persen) bahwa Anda dan mitra jarak jauh Anda akan menafsirkan data yang diterima dengan cara yang sama.

2. Masuk akal untuk menggunakan tanggal dan waktu yang dilokalkan hanya saat menampilkannya kepada pengguna. Dalam kasus lainnya, lebih baik menolak data yang dilokalkan.

3. Jika masih harus menggunakan tanggal dan waktu setempat, jangan lupa memperhitungkan offset waktu setempat relatif terhadap referensi (UTC atau GMT).

Mengikuti aturan ini akan menyelamatkan Anda dari sebagian besar bug dan kekurangan logis, dan karenanya membuat kode Anda lebih stabil dan berkualitas lebih tinggi.

Dalam pelajaran ini, kita akan mengenal objek JavaScript Date dan mempelajari cara menggunakannya dalam praktik.

Membuat Tanggal - 4 Contoh

Dalam JavaScript, pembuatan tanggal dilakukan menggunakan objek Date. Objek Tanggal mewakili titik pada sumbu waktu dan dirancang untuk menyimpan tanggal dan waktu dengan presisi milidetik.

Contoh pembuatan tanggal di JavaScript.

1. Buat tanggal dan waktu saat ini.

Mendapatkan tanggal dan waktu saat ini dalam JavaScript dilakukan dengan membuat instance objek Tanggal tanpa menentukan parameter apa pun:

// tanggal saat ini (tanggal dan waktu pada saat instance objek Date dibuat di komputer lokal pengguna) var now = new Date(); // misalnya, mencetak tanggal sekarang ke konsol console.log(now);

Jika Anda hanya ingin mendapatkan tanggal hari ini dalam format string, Anda dapat menggunakan metode toLocaleDateString:

Var sekarang = Tanggal baru().toLocaleDateString(); // 19/12/2019

Waktu pengguna saat ini dapat diperoleh seperti ini:

Var sekarang = Tanggal baru().toLocaleTimeString(); // 11:02:48 var sekarang = Tanggal baru().toLocaleTimeString().slice(0,-3); // 11:02

Anda bisa mendapatkan tanggal dan waktu dalam format string seperti ini:

Var sekarang = Tanggal baru().toLocaleString(); // 19/12/2019, 11:02:48

2. Membuat tanggal dengan menentukan pada objek Tanggal jumlah milidetik yang telah berlalu sejak 1 Januari 1970 00:00:00 UTC.

// 1 tahun (bukan bermutu tinggi) = 365*24*60*60*1000 = 31536000000 ms // misalnya, buat tanggal 01/01/1971, 00:00:00 UTC: var date1 = new Date( 31536000000);

3. Membuat tanggal dengan menentukannya ke objek Tanggal sebagai string.

Dengan opsi untuk membuat tanggal ini, JavaScript akan mencoba memahami string yang diteruskan ke tanggal tersebut dan menghasilkan tanggal berdasarkan tanggal tersebut. Mengonversi string menjadi tanggal dalam JavaScript dilakukan menggunakan metode Date.parse.

Misalnya:

// membuat tanggal berdasarkan string dalam format DD.MM.YY var date1 = new Date("05.11.19"); // membuat tanggal berdasarkan string dengan format YYYY-MM-DDThh:mm:ss.sss (karakter T digunakan untuk memisahkan tanggal dan waktu) var date2 = new Date("24-02-2015T21:23 "); // membuat tanggal berdasarkan string yang menunjukkan zona waktu (format YYYY-MM-DDThh:mm:ss.sss±hh:mm): var date3 = new Date("24-02-2015T22:02+03:00 ") ;

4. Membuat tanggal dengan menentukan parameter berikut dipisahkan dengan koma: tahun (4 digit), bulan (dihitung dari 0), hari (1..31), jam (0..23), menit (0..59) , detik (0..59), milidetik (0..999). Selain itu, hanya dua parameter pertama yang wajib diisi.

Contoh pembuatan tanggal yang hanya menentukan parameter yang diperlukan:

// buat tanggal 01/01/2015 (parameter default yang tidak ditentukan adalah: angka - 01, jam - 00, menit - 00, detik - 00, milidetik - 000). var tanggal1 = Tanggal baru(2015.01); // buat tanggal 24/01/2015, 21:23 var date2 = Tanggal baru(2015,01,24,21,23);

Catatan: Jika Anda perlu mengatur tanggal dan waktu dalam UTC, Anda dapat menggunakan metode Date.UTC.

//1 contoh var date1 = Tanggal.UTC(2015,1,1); var tanggal2 = Tanggal baru(tanggal1); peringatan(tanggal2.toUTCString()); //2 contoh var tanggal baru = Tanggal baru(Tanggal.UTC(2015,1,1)); peringatan(tanggal baru.toUTCString());

Mengambil masing-masing komponen tanggal dan waktu

Dalam JavaScript, metode berikut digunakan untuk mendapatkan masing-masing komponen tanggal dan waktu:

  • getFullYear() – mengembalikan tahun yang terdiri dari 4 angka;
  • getMonth() – mengembalikan bulan dalam format angka dari 0 hingga 11 (0 – Januari, 1 – Februari, 2 – Maret, ..., 11 – Desember);
  • getDate() – mengembalikan hari dalam sebulan dari 1 hingga 31;
  • getHours() – mengembalikan jumlah jam dari 0 hingga 23;
  • getMinutes() – mengembalikan jumlah menit dari 0 hingga 59;
  • getSeconds() – mengembalikan jumlah detik dari 0 hingga 59;
  • getMilliseconds() – mengembalikan jumlah milidetik dari 0 hingga 999.

Semua metode ini mengembalikan masing-masing komponen tanggal dan waktu sesuai dengan zona waktu yang ditetapkan pada perangkat lokal pengguna.

// buat tanggal 11/11/2019 00:00 UTC var newDate = new Date(Date.UTC(2019,11,11)); // dapatkan komponen tanggal jika waktu lokal di perangkat pengguna adalah UTC+10:00 newDate.getFullYear(); //Tanggal baru 2019.getMonth(); // 10 Tanggal Baru.getDate(); // 11 Tanggal baru.getHours(); // 10 Tanggal Baru.getMinutes(); // 0 Tanggal baru.getSeconds(); // 0 Tanggal Baru.getMillidetik(); // 0

Contoh di mana kami akan menyapa pengguna tergantung pada interval waktu yang dia miliki saat ini:

// dapatkan waktu pengguna saat ini dan komponen waktu ini var now = new Date(), hour = now.getHours(), Minute = now.getMinutes(), second = now.getSeconds(), message = ""; // mendefinisikan frasa ucapan tergantung pada waktu setempat pengguna if (hour

Menurut pendapat saya, ini sangat sederhana, cukup indah dan dapat dimengerti. Jika Anda tidak memiliki keinginan untuk mempelajari konstruksi skrip ini, cukup tempelkan di mana saja pada halaman HTML dan dapatkan tulisan berikut:

Opsi lain yang lebih canggih

//
// ]]>
// ]]>
// ]]>
// ]]>
// ]]>
! Hari ini
// + " " + d.getFullYear() + " g.");
// ]]>
// ]]>
// ]]>
// ]]>
// ]]>
// ]]>

Ini terlihat seperti ini:

Hari ini

Secara umum, tidak diperlukan keahlian, cukup masukkan kode dengan bodohnya dan semuanya baik-baik saja!

Keterangan lebih lanjut:

Jadi, kita mulai dengan menetapkan nilai tanggal ke variabel d, lalu membuat array (Array) untuk hari dalam seminggu (hari) dan bulan (bulan), menentukannya dalam bentuk tata bahasa yang diperlukan: huruf besar/kecil, angka, huruf kapital jika kata muncul di awal tanggal, dll. .P. Baris terakhir skrip adalah tanggal pencetakan sebenarnya (document.write). Di sini Anda mengatur apa dan dalam urutan apa yang akan Anda tampilkan di baris tanggal saat ini. Komponen dipisahkan satu sama lain dengan tanda +. Untuk memasukkan spasi gunakan konstruksi " ", dan untuk memasukkan huruf g (tahun) gunakan konstruksi " g ".

Seperti yang Anda lihat dari skrip, elemen get mengeksekusi data waktu saat ini. Metode ini memungkinkan Anda memperoleh informasi berikut:

  • getDate() - mengembalikan angka dari 1 hingga 31 yang mewakili hari dalam sebulan;
  • getDay() - mengembalikan hari dalam seminggu sebagai bilangan bulat dari 0 (Minggu) hingga 6 (Sabtu);
  • getMonth() - mengembalikan nomor bulan dalam setahun;
  • getFullYear() - mengembalikan tahun. Jika Anda cukup menggunakan getYear() , tahun berjalan dikurangi 1900 akan ditampilkan;
  • get Hours() - mengembalikan jam dalam sehari;
  • getMinutes() - mengembalikan menit sebagai angka dari 0 hingga 59;
  • getSeconds() - mengembalikan jumlah detik dari 0 hingga 59.

Tidak selalu mudah untuk memasukkan skrip Java langsung ke halaman situs web. Deskripsi skrip paling baik ditempatkan di awal halaman di antara tag dan mengatur variabel yang akan kita panggil sesuai kebutuhan dalam teks. Sebut saja HARI INI dan tentukan di dalamnya bentuk keluaran tanggal yang mirip dengan di atas. Scriptnya akan terlihat seperti ini:


Untuk menampilkan tanggal, panggil skrip di tempat yang diinginkan dalam kode HTML halaman menggunakan perintah berikut:


document.write(HARI INI);

Jika situs Anda berisi banyak halaman yang ingin Anda tampilkan tanggalnya, akan lebih mudah untuk memisahkan skrip Java untuk menampilkan tanggal ke dalam file terpisah, misalnya data.js. Dalam praktiknya, ini adalah halaman yang terdiri dari skrip pertama yang dijelaskan, yaitu dengan baris document.write (lihat di atas). Itu harus ditempatkan di direktori yang sama dengan halaman utama, dan dipanggil di tempat di mana tanggal ditampilkan sebagai berikut:


Jangan lupa untuk memeriksa apakah file data.js memiliki pengkodean yang sama dengan dokumen utama, jika tidak, tanggal akan ditampilkan dengan kait, kotak, dan trik lainnya yang bagus.

Komentar. Perlu diingat bahwa skrip yang dijelaskan menampilkan tanggal yang ditetapkan di komputer pengguna, yang tidak selalu sesuai dengan waktu sebenarnya. Jika Anda ingin menunjukkan waktu yang tepat, maka Anda perlu menggunakan skrip PHP yang akan menunjukkan waktu di server.