Bagaimana saya bisa menghitung kemarin sebagai tanggal dalam JavaScript?
javascript
date
Akhir
sumber
sumber
getDate
mengembalikan hari dalam sebulan (misalnya: 1 - 31) tetapi sebenarnyasetDate(0)
menetapkan tanggal ke hari terakhir bulan sebelumnya. Apakah ini berfungsi di semua browser?Tidak terlalu efisien, tetapi sebagai oneliner:
Di atas menciptakan tiga
Date
objek yang sia-sia sia-sia. Ini dapat direduksi menjadi satu instantiasi dengan:Atau, jika Anda lebih suka:
Atau, jika Anda lebih suka ES6 dengan fungsi panah:
sumber
var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)
Coba ini
sumber
Anehnya tidak ada jawaban untuk solusi lintas peramban yang paling mudah
Untuk menemukan waktu yang persis sama kemarin:
Itu jika Anda ingin bebas dari ketergantungan, jika tidak saya sarankan menggunakan http://momentjs.com
sumber
Untuk menggeneralisasi pertanyaan dan membuat perhitungan lain, gunakan:
ini menciptakan objek tanggal baru berdasarkan nilai "sekarang" sebagai bilangan bulat yang mewakili zaman unix dalam milidetik yang mengurangi satu hari.
Dua hari yang lalu:
Satu jam yang lalu:
sumber
new Date(Date.parse(new Date()) - 86400000)
. Meskipun saya suka Date.now () jadi mungkin saya akan mencobanya. Ini akan menyimpan tanggal tambahan.Saya menggunakan perpustakaan saat ini , sangat fleksibel dan mudah digunakan.
Dalam kasus Anda:
sumber
subtract
daripadaadd
sumber
sumber
sumber
Ini akan menghasilkan kemarin pukul 00:00 dengan presisi menit
sumber
akan melakukan trik
sumber
d.setHours(-1,0,0,0)
. Ini akan mengembalikan tanggal kemarin, tetapi mungkin bukan waktu yang Anda inginkan (23:00:00)Cobalah ini, bekerja untuk saya:
Ini membuat saya objek kencan kembali untuk kemarin
sumber
var yesterday = new Date(); yesterday.setDate(today.GetDate() - 1)
sehingga Anda dapat menggunakan hari ini dan kemarinBerikut ini adalah satu liner yang digunakan untuk mendapatkan tanggal kemarin dalam format YYYY-MM-DD dalam teks dan menangani offset zona waktu.
Jelas dapat berubah menjadi tanggal kembali, x hari mundur. Termasuk waktu dll.
sumber
Jika Anda ingin mendapatkan tanggal untuk kemarin dan memformat tanggal itu dalam format yang dapat dibaca manusia, pertimbangkan untuk membuat
DateHelper
objek khusus yang terlihat seperti ini:(Lihat juga Fiddle ini )
sumber
Anda dapat menggunakan momentjs. Sangat membantu Anda dapat mencapai banyak hal dengan perpustakaan ini.
Dapatkan tanggal kemarin dengan waktu saat ini
moment().subtract(1, 'days').toString()
Dapatkan tanggal kemarin dengan tanggal mulai
moment().subtract(1, 'days').startOf('day').toString()
sumber
memecahkan masalah batas tanggal (2020, 01, 01) -> 2019, 12, 31
sumber
"Date.now () - 86400000" tidak akan berfungsi pada akhir hari Daylight Saving (yang memiliki 25 jam hari itu)
Pilihan lain adalah menggunakan Penutupan:
sumber