Cara menggunakan DATEJS di JavaScript

Pada pembahasan sebelumnya, Codekey membahas cara menggunakan string replace. Rangkaian tutorial JavaScript ini akan membahas Format Tanggal JavaScript. Format Tanggal JavaScript adalah objek yang merepresentasikan momen dalam format independen platform. Objek Tanggal berisi angka yang mewakili setiap milidetik sejak Januari 1970 UTC (Koordinat Waktu Universal)

Jika Anda tertarik dengan pembahasan kali ini, baca terus artikel Tutorial JavaScript 24 di Codekey sampai selesai

Daftar isi

Tanggal & Waktu JavaScript

Objek Tanggal di JavaScript menyimpan tanggal, waktu, dan menyediakan metode untuk manajemen tanggal/waktu. Misalnya, Anda dapat menggunakannya untuk menyimpan waktu pembuatan/modifikasi kode JavaScript Anda, untuk mengukur waktu, atau hanya untuk mencetak tanggal saat ini

Berikut adalah contoh penerapan tanggal dan waktu terbaru di JavaScript menggunakan Objek Tanggal

// the following gives the current date and time object
new Date()

Anda juga dapat menggunakan objek tanggal JavaScript untuk mencetak tanggal dan waktu terbaru seperti yang ditunjukkan di bawah ini

let tgl = new Date()
console.log(tgl.toString())

_

Kode di atas akan menghasilkan output seperti di bawah ini

// output
"Fri Oct 19 2018 17:10:12 GMT+0530 (IST)"

Format Tanggal JavaScript

Waktu tanggal yang ditampilkan di atas adalah format default. Sebenarnya tidak mudah mengubah format tanggal, namun ada cara mengatur format tanggal JavaScript untuk mengatur format tanggal. Lihat contoh di bawah ini

  1. Tetapkan Format Tanggal JavaScript dd-mmm-yyyy

Untuk mengatur tanggal format JavaScript dalam bentuk dd-mmm-yyyy Anda perlu mengekstrak tanggal, bulan, dan tahun dari objek tanggal

let tgl = new Date()
let format_tgl = tgl.getDate() + "-" + (tgl.getMonth() + 1) + "-" + tgl.getFullYear()
console.log(format_tgl)

Kode di atas akan mengembalikan tanggal dalam format berikut

Untuk mengonversi bulan dalam angka menjadi string bulan, Anda dapat membuat larik bulan dan menanyakannya berdasarkan indeks bulan. Lihat contoh berikut

Kode di atas akan menghasilkan output dengan format di bawah ini

// output
"19-OCT-2018"

_

2. Tetapkan Format Tanggal JavaScript yyyy-mm-dd

Mengonversi tanggal ke format yyyy-mm-dd serupa, tetapi Anda tidak memerlukan larik bulan

let tgl = new Date()
let format_tgl = tgl.getFullYear() + "-" + (tgl.getMonth() + 1) + "-" + tgl.getDate()
console.log(formatted_date)

Artikel Terkait   Tutorial JavaScript 1. Javascript Adalah, Pengantar untuk Pemula

Keluaran

3. Ubah Format Tanggal JavaScript yyyy-mm-dd hh. mm. ss

Mirip dengan cara Anda mengonversi tanggal sebelumnya, Anda juga dapat mengonversi tanggal menjadi yyyy-mm-dd hh. mm. ss

hh:mm:ss. 
let tgl = new Date()
let format_tgl = tgl.getFullYear() + "-" + (tgl.getMonth() + 1) + "-" + tgl.getDate() + " " + tgl.getHours() + ":" + tgl.getMinutes() + ":" + tgl.getSeconds() 
console.log(format_tgl)

_

Kode di atas akan menghasilkan output seperti format tanggal di bawah ini

// output
"2018-10-19 17:25:56"

Dengan cara di atas Anda tidak perlu menggunakan plugin jQuery lain untuk mengubah format datetime di JavaScript

Menambahkan Leading Zero di Tgl

Meskipun metode yang dijelaskan di atas bekerja dengan baik untuk skenario di mana jam, menit, atau detik lebih besar dari 9, namun gagal untuk kasus di mana. Misalnya, 03. 05. 01 akan ditampilkan sebagai 3. 5. 1 yang formatnya salah. Jadi bagaimana Anda memperbaikinya?

function appendLeadingZeroes(n){
  if(n <= 9){
    return "0" + n;
  }
  return n
}

let tgl = new Date()
console.log(tgl.toString());
let format_tgl = tgl.getFullYear() + "-" + appendLeadingZeroes(tgl.getMonth() + 1) + "-" + appendLeadingZeroes(tgl.getDate()) + " " + appendLeadingZeroes(tgl.getHours()) + ":" + appendLeadingZeroes(tgl.getMinutes()) + ":" + appendLeadingZeroes(tgl.getSeconds())

console.log(format_tgl);
_

Artikel Terkait   Tutorial JavaScript 23. Cara Menggunakan Ganti String di Javascript

Itulah penjelasan dari format waktu tanggal JavaScript. Metode di atas menggunakan objek tanggal format JavaScript untuk mengonversi waktu tanggal ke format lain. Anda dapat menggunakan perpustakaan seperti Moment. js untuk membuat perubahan dan konversi format tanggal lebih mudah

Konstruktor Date() dapat membuat instance Date atau mengembalikan string yang mewakili waktu saat ini

new Date()
new Date(value)
new Date(dateString)
new Date(dateObject)

new Date(year, monthIndex)
new Date(year, monthIndex, day)
new Date(year, monthIndex, day, hours)
new Date(year, monthIndex, day, hours, minutes)
new Date(year, monthIndex, day, hours, minutes, seconds)
new Date(year, monthIndex, day, hours, minutes, seconds, milliseconds)

Date()
_

Catatan. _______ 52 _______ dapat dipanggil dengan atau tanpa ________ 55 _______, tetapi dengan efek yang berbeda. Lihat

Ada lima bentuk dasar untuk konstruktor Date()

Tidak ada parameter

Ketika tidak ada parameter yang diberikan, objek Date yang baru dibuat mewakili tanggal dan waktu saat ini pada saat instantiasi

Nilai waktu atau nomor stempel waktu

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
_1

Nilai bilangan bulat yang mewakili jumlah milidetik sejak 1 Januari 1970, 00. 00. 00 UTC (zaman ECMAScript, setara dengan zaman UNIX), dengan detik kabisat diabaikan. Ingatlah bahwa sebagian besar fungsi hanya akurat hingga detik terdekat

Tali tanggal

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
_2

Nilai string yang mewakili tanggal, dalam format yang dikenali oleh metode

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
3. (Spesifikasi ECMA262 menentukan a , tetapi format lain dapat ditentukan implementasinya, yang umumnya mencakup. )

Catatan. Saat menguraikan string tanggal dengan konstruktor Date (dan

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
5, keduanya setara), selalu pastikan bahwa input sesuai dengan format ISO 8601 (
const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
6) — perilaku penguraian dengan format lain ditentukan oleh implementasi dan mungkin tidak berfungsi di semua browser. Dukungan untuk string format RFC 2822 hanya berdasarkan konvensi. Perpustakaan dapat membantu jika banyak format yang berbeda harus diakomodasi

String khusus tanggal (mis. g.

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
_7) diperlakukan sebagai UTC, sedangkan string tanggal-waktu (mis. g.
const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
_8) diperlakukan sebagai lokal. Oleh karena itu, Anda juga disarankan untuk memastikan format input konsisten di antara kedua jenis tersebut

Objek tanggal

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp
_9

Objek Date yang sudah ada. Ini secara efektif membuat salinan objek Date yang ada dengan tanggal dan waktu yang sama. Ini setara dengan

console.log(new Date(undefined)); // Invalid Date
_2, kecuali metode
console.log(new Date(undefined)); // Invalid Date
3 tidak dipanggil

Saat satu parameter diteruskan ke konstruktor Date(), Date instance diperlakukan secara khusus. Semua nilai lainnya adalah. Jika hasilnya berupa string, maka akan diuraikan sebagai string tanggal. Jika tidak, primitif yang dihasilkan selanjutnya dipaksa ke angka dan diperlakukan sebagai stempel waktu

Nilai komponen tanggal dan waktu individual

Diberikan setidaknya satu tahun dan bulan, bentuk Date() ini mengembalikan objek Date yang nilai komponennya (tahun, bulan, hari, jam, menit, detik, dan milidetik) semuanya berasal dari parameter berikut. Setiap bidang yang hilang diberi nilai serendah mungkin (

console.log(new Date(undefined)); // Invalid Date
8 untuk
console.log(new Date(undefined)); // Invalid Date
9 dan
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0 untuk setiap komponen lainnya). Semua nilai parameter dievaluasi berdasarkan zona waktu lokal, bukan UTC

Jika ada parameter yang melebihi batas yang ditentukan, itu "dibawa". Misalnya, jika

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_1 lebih besar dari
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
2 dilewatkan, bulan-bulan itu akan menyebabkan tahun bertambah; . Oleh karena itu,
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_6 akan kembali pada 1 Januari 1991; . 05 A. M. 20 Juni 2020

Demikian pula, jika ada parameter underflow, itu "meminjam" dari posisi yang lebih tinggi. Misalnya,

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_8 akan kembali pada 31 Mei 2020

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_9

Nilai integer mewakili tahun. Nilai dari

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0 hingga
console.log(new Date(["2020-06-19", "17:13"]));
// 2020-06-19T17:13:00.000Z in Chrome, since it recognizes "2020-06-19,17:13"
// "Invalid Date" in Firefox
1 memetakan ke tahun
console.log(new Date(["2020-06-19", "17:13"]));
// 2020-06-19T17:13:00.000Z in Chrome, since it recognizes "2020-06-19,17:13"
// "Invalid Date" in Firefox
2 hingga
console.log(new Date(["2020-06-19", "17:13"]));
// 2020-06-19T17:13:00.000Z in Chrome, since it recognizes "2020-06-19,17:13"
// "Invalid Date" in Firefox
3. Semua nilai lainnya adalah tahun sebenarnya. Lihat

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_1

Nilai bilangan bulat yang mewakili bulan, dimulai dengan

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0 untuk Januari hingga
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
2 untuk Desember

console.log(new Date(undefined)); // Invalid Date
9 Opsional

Nilai bilangan bulat mewakili hari dalam sebulan. Standarnya adalah

console.log(new Date(undefined)); // Invalid Date
_8

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
5 Opsional

Nilai bilangan bulat antara

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0 dan Date()1 mewakili jam dalam sehari. Default ke
console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
3 Opsional

Nilai bilangan bulat mewakili segmen menit dari suatu waktu. Standarnya adalah

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_0 menit lewat satu jam

Date()5 Opsional

Nilai bilangan bulat mewakili segmen kedua dari suatu waktu. Standarnya adalah

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_0 detik lewat satu menit

Date()7 Opsional

Nilai bilangan bulat mewakili segmen milidetik waktu. Standarnya adalah

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
_0 milidetik melewati detik

Memanggil Date()9 (konstruktor Date()) mengembalikan objek Date. Jika dipanggil dengan string tanggal yang tidak valid, atau jika tanggal yang akan dibuat akan memiliki stempel waktu UNIX kurang dari Date2 atau lebih besar dari Date3 milidetik, ia mengembalikan objek Date yang metode Date5 mengembalikan string literal Date6

Memanggil fungsi Date() (tanpa kata kunci new) mengembalikan representasi string dari tanggal dan waktu saat ini, persis seperti Date9. Argumen apa pun yang diberikan dalam pemanggilan fungsi Date() (tanpa kata kunci new) akan diabaikan;

Contoh berikut menunjukkan beberapa cara untuk membuat tanggal JavaScript

const today = new Date();
const birthday = new Date("December 17, 1995 03:24:00"); // DISCOURAGED: may not work in all runtimes
const birthday = new Date("1995-12-17T03:24:00"); // This is ISO-8601-compliant and will work reliably
const birthday = new Date(1995, 11, 17); // the month is 0-indexed
const birthday = new Date(1995, 11, 17, 3, 24, 0);
const birthday = new Date(628021800000); // passing epoch timestamp

Jika konstruktor Date() dipanggil dengan satu parameter yang bukan merupakan turunan Date, ia akan dipaksa menjadi primitif dan kemudian memeriksa apakah itu string. Misalnya, Date()_4 berbeda dengan Date()9

console.log(new Date(undefined)); // Invalid Date

Ini karena Date()6 sudah primitif tetapi bukan string, sehingga akan dipaksakan ke angka, yaitu Date()7 dan karenanya bukan stempel waktu yang valid. Di sisi lain, Date()_8 akan dipaksa untuk

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z
0

console.log(new Date(null)); // 1970-01-01T00:00:00.000Z

Array akan dipaksa menjadi string melalui new0, yang menggabungkan elemen dengan koma. Namun, string yang dihasilkan untuk setiap larik dengan lebih dari satu elemen bukanlah string tanggal ISO 8601 yang valid, sehingga perilaku penguraiannya akan ditentukan oleh implementasi. Jangan meneruskan array ke konstruktor Date()