Bagaimana saya bisa mendapatkan tanggal dengan format yyyy-mm-dd dari tanggal ISO 8601 ?
Tanggal 8601 saya adalah
2013-03-10T02:00:00Z
Bagaimana saya bisa mendapatkan yang berikut ini?
2013-03-10
javascript
date
neeraj
sumber
sumber
date.split("T")[0]
akan dilakukanJawaban:
Coba ini
Memperbarui:-
Seperti yang ditunjukkan dalam komentar, saya memperbarui jawaban untuk mencetak angka nol di depan untuk tanggal dan bulan jika diperlukan.
sumber
Pangkas saja stringnya:
Atau jika Anda hanya membutuhkan tanggal keluar dari string.
sumber
YYYYY-MM-DD
di tahun 10000. Untuk menghindari hal ini, Anda dapat membagi diT
karakter sebagai gantinya. (Lihat en.wikipedia.org/wiki/Year_10,000_problem )Anda dapat memeriksa Moment.js , Luxon , date-fns atau Day.js untuk manipulasi tanggal yang bagus.
Atau ekstrak saja bagian pertama dari string ISO Anda, itu sudah berisi apa yang Anda inginkan. Berikut adalah contoh dengan membelah pada
T
:sumber
Moment.js akan menangani pemformatan tanggal untuk Anda. Berikut adalah cara memasukkannya melalui tag JavaScript, dan kemudian contoh cara menggunakan Moment.js untuk memformat tanggal.
sumber
moment
adalah pustaka yang cukup besar untuk digunakan hanya untuk pemformatan. Lebih baik gunakan date-fns yang ukurannya jauh lebih kecil dan memberikan fungsi yang sama..toISODateString()
, karena ini kasus yang sangat sering ...Inilah yang saya lakukan untuk mendapatkan kencan saja:
sumber
Moment.js adalah pustaka yang cukup besar untuk digunakan pada satu kasus penggunaan. Saya sarankan menggunakan
date-fns
sebagai gantinya. Ini pada dasarnya menawarkan fungsionalitas paling banyak dari Moment.js dengan ukuran bundel yang jauh lebih kecil dan banyak lagiformatting options
.Satu hal yang perlu diperhatikan adalah, karena ini adalah format waktu ISO 8601 , browser umumnya mengonversi dari waktu UTC ke zona waktu lokal. Padahal ini adalah kasus penggunaan sederhana yang mungkin bisa Anda lakukan
'2013-03-10T02:00:00Z'.substring(0, 10);
.Untuk konversi yang lebih kompleks
date-fns
adalah caranya.sumber
sumber
Menggunakan:
sumber
Ini akan mengeluarkan tanggal dalam format YYYY-MM-DD:
sumber
Berikan tanggal Anda di objek tanggal:
sumber
Untuk semua yang menggunakan split, slice, dan upaya berbasis string lainnya untuk mendapatkan tanggal, Anda dapat mengatur sendiri untuk kegagalan terkait zona waktu!
ISO-String memiliki Zulu-Timezone dan tanggal menurut zona waktu ini, yang berarti, mungkin menggunakan tanggal sehari sebelum atau setelah zona waktu aktual, yang harus Anda perhitungkan dalam rantai transformasi Anda.
Lihat contoh ini:
sumber
Jika Anda memiliki objek tanggal:
atau
sumber
Untuk memperpanjang solusi rk rk : Jika Anda ingin formatnya menyertakan waktu, Anda dapat menambahkan
toTimeString()
ke string Anda, lalu menghapus bagian GMT, sebagai berikut:sumber
Saya menggunakan ini:
Sumber: http://gooplus.fr/en/2017/07/13/angular2-typescript-isodate-to-html-date/
sumber
sumber
sumber
Versi jawaban yang lebih baik oleh @Hozefa .
Jika Anda telah
date-fns
menginstal, Anda dapat menggunakan fungsi formatISOsumber
Gunakan kode di bawah ini. Ini berguna untuk Anda.
sumber