Saya ingin moment().fromNow()
fungsinya, tetapi ketika tanggalnya dekat, itu terlalu tepat - mis. Saya tidak ingin itu muncul 'dalam 3 jam' tetapi 'hari ini' - jadi pada dasarnya dengan ketepatan 'harian'.
Saya mencoba menggunakan moment().calendar()
fungsinya, itu tidak memformat jika perbedaan tanggal lebih dari 1 hari
javascript
date
momentjs
Ziarno
sumber
sumber
new Date()
untuk menghindari peringatan yang terus diberikan lib kepada saya (lihat momentjs.com/docs/#/parsing/now )new Date()
dibutuhkan? Saya pikirmoment()
menghasilkan contoh momen menggunakan tanggal hari iniAnda dapat menyesuaikan cara the
.fromNow
dan.calendar
metode menampilkan tanggal menggunakanmoment.updateLocale
. Kode berikut akan mengubah cara yang.calendar
ditampilkan sesuai pertanyaan:Berdasarkan pertanyaan tersebut, sepertinya
.calendar
metode ini akan lebih tepat -.fromNow
ingin memiliki prefiks / sufiks masa lalu / sekarang, tetapi jika ingin mengetahui lebih lanjut, Anda dapat membaca dokumentasi di http://momentjs.com / docs / # / customization / relative-time / .Untuk menggunakan ini hanya di satu tempat alih-alih menimpa lokal, berikan string pilihan Anda sebagai argumen pertama saat Anda mendefinisikan
moment.updateLocale
dan kemudian memanggil metode kalender menggunakan lokal itu (mis.moment.updateLocale('yesterday-today').calendar( /* moment() or whatever */ )
)EDIT: Momen ^ 2.12.0 sekarang memiliki
updateLocale
metode.updateLocale
danlocale
tampaknya berfungsi sama, danlocale
belum usang, tetapi memperbarui jawaban untuk menggunakan metode yang lebih baru.sumber
Saya menggunakan kombinasi dari
add()
danendOf()
dengan momensumber
Persyaratan:
moment().fromNow()
fungsionalitas standar ."today"
,"yesterday"
,"tomorrow"
, dllLarutan:
NB: Dari versi 2.14.0, argumen format ke fungsi kalender dapat berupa callback, lihat http://momentjs.com/docs/#/displaying/calendar-time/ .
sumber
Anda dapat menggunakan ini:
sumber
Saya memiliki solusi serupa, tetapi memungkinkan untuk menggunakan lokal:
sumber
Dari 2.10.5 saat mendukung menentukan format keluaran kalender per doa Untuk dokumentasi yang lebih rinci, periksa Momen - Kalender .
Dari 2.14.0 kalender juga dapat melakukan panggilan balik untuk mengembalikan nilai.
sumber
Di Moment.js, metode from () memiliki ketepatan harian yang Anda cari:
sumber
from
tidak memiliki presisi harian. Misalnya, jika kemarin adalah empat jam yang lalu dan saya memilih waktu yang lima jam yang lalu, maka akan tertulis "5 jam yang lalu", bukan kemarin. Solusi ini tidak ada hubungannya dengan ketepatanfrom
, tetapi tanggal berlalu.Jadi inilah yang akhirnya saya lakukan
sumber
Anda bisa menggunakan metode .add () dan .subtract () untuk mendapatkan tanggal kemarin dan besok. Kemudian gunakan metode format untuk mendapatkan hanya tanggal .format ("D / M / Y"), D untuk Hari, M untuk Bulan, Y untuk Tahun. Periksa di Dokumen Moment
Hasilnya adalah:
sumber
Inilah cara saya melakukannya menggunakan momen :
sumber
sumber