Adakah yang tahu cara mudah untuk berkencan (mis. Hari ini) dan kembali ke X hari?
Jadi, misalnya, jika saya ingin menghitung tanggal 5 hari sebelum hari ini.
javascript
date
datetime
Jonhobbs
sumber
sumber
Jawaban:
Coba sesuatu seperti ini:
Perhatikan bahwa ini memodifikasi objek tanggal dan mengembalikan nilai waktu dari tanggal yang diperbarui.
sumber
new Date(new Date().setDate(new Date().getDate()-5))
- itu akan menjadi 5 hari yang lalu. Dalam contoh jawaban, berikan ke tanggal baru untuk mendapatkan objek kencan. Jadinew Date(d)
apa yang kamu inginkan.setDate(-1)
akan menetapkan tanggal ke hari terakhir bulan itutoString
metode sepertitoISOString
,toDateString
, dllJika Anda melakukan banyak manipulasi tanggal headachy di seluruh aplikasi web Anda, DateJS akan membuat hidup Anda lebih mudah:
http://simonwillison.net/2007/Dec/3/datejs/
sumber
getTime()
dansetTime()
milidetik sejak zaman. Seharusnya tidak masalah jika waktu melewati batas tahun.Bunyinya seperti ini:
sumber
function getDaysAgo(b){var a=new Date;a.setDate(a.getDate()-b);return a};
maka cukupvar daysAgo45 = getDaysAgo(45);
Saya perhatikan bahwa getDays + X tidak berfungsi melebihi batas hari / bulan. Menggunakan getTime berfungsi selama kencan Anda tidak sebelum tahun 1970.
sumber
dapatkan moment.js. Semua anak keren menggunakannya. Ini memiliki lebih banyak opsi pemformatan, dll. Di mana
Pilihan! Konversi ke JS Date obj untuk Angular binding.
Pilihan! Format
sumber
Saya membuat prototipe ini untuk Date sehingga saya bisa memberikan nilai negatif untuk mengurangi hari dan nilai positif untuk menambah hari.
Jadi, untuk menggunakannya saya cukup menulis:
sumber
d.setDate(d.getDate() + days)
nilai positif dan negatif selama berhari - hari untuk menambah dan mengurangi hari. Dan itu harus bekerja pada instance (seperti metode Date lainnya), tidak membuat dan mengembalikan salinan.Beberapa solusi yang ada sudah dekat, tetapi tidak persis seperti yang saya inginkan. Fungsi ini berfungsi dengan nilai positif atau negatif dan menangani kasus batas.
sumber
Saya suka mengerjakan matematika dalam milidetik. Jadi gunakan
Date.now()
dan jika Anda suka diformat
CATATAN:
Date.now()
tidak berfungsi di browser yang lebih lama (mis. IE8 saya pikir). Polyfill di sini .PEMBARUAN Juni 2015
@socketpair menunjukkan kecerobohan saya. Seperti yang dia katakan, "Suatu hari dalam setahun memiliki 23 jam, dan beberapa 25 karena aturan zona waktu".
Untuk memperluasnya, jawaban di atas akan memiliki ketidakakuratan penghematan cahaya siang hari dalam kasus di mana Anda ingin menghitung LOKAL hari 5 hari yang lalu di zona waktu dengan perubahan daylightaving dan Anda
Date.now()
memberi Anda LOKAL sekarang waktu sekarang, atau.toString()
yang mengembalikan tanggal lokal dan karenanya tidak sesuai denganDate.now()
tanggal dasar dalam UTC.Namun, ini berfungsi jika Anda mengerjakan semua matematika di UTC, mis
A. Anda menginginkan tanggal UTC 5 hari yang lalu dari SEKARANG (UTC)
B. Anda mulai dengan tanggal dasar UTC selain "sekarang", menggunakan
Date.UTC()
sumber
Saya menemukan masalah dengan metode getDate () / setDate () adalah terlalu mudah mengubah semuanya menjadi milidetik, dan sintaksisnya terkadang sulit untuk saya ikuti.
Alih-alih saya suka bekerja dengan fakta bahwa 1 hari = 86.400.000 milidetik.
Jadi, untuk pertanyaan khusus Anda:
Bekerja seperti pesona.
Saya menggunakan metode ini sepanjang waktu untuk melakukan perhitungan 30/60/365 hari bergulir.
Anda dapat dengan mudah memperkirakan ini untuk membuat satuan waktu selama berbulan-bulan, bertahun-tahun, dll.
sumber
pisahkan tanggal Anda menjadi beberapa bagian, lalu kembalikan Tanggal baru dengan nilai yang disesuaikan
Ingat bahwa bulan-bulan berdasarkan nol, tetapi hari-hari tidak. yaitu Tanggal baru (2009, 1, 1) == 01 Februari 2009, Tanggal baru (2009, 1, 0) == 31 Januari 2009;
sumber
Tanpa menggunakan variabel kedua, Anda dapat mengganti 7 dengan punggung x hari:
sumber
sumber
Saya telah membuat fungsi untuk manipulasi tanggal. Anda dapat menambah atau mengurangi jumlah hari, jam, menit.
Sekarang, panggil fungsi ini dengan mengirimkan parameter. Misalnya, ini adalah panggilan fungsi untuk mendapatkan tanggal sebelum 3 hari dari hari ini.
sumber
sumber
Jawaban teratas menyebabkan bug dalam kode saya di mana pada bulan pertama akan menetapkan tanggal di bulan ini. Inilah yang saya lakukan,
sumber
Cara mudah untuk mengelola tanggal adalah menggunakan Moment.js
Anda bisa menggunakannya
add
. ContohDocuments http://momentjs.com/docs/#/manipulating/add/
sumber
Saya suka yang berikut karena ini adalah satu baris. Tidak sempurna dengan perubahan DST tetapi biasanya cukup baik untuk kebutuhan saya.
sumber
bagi saya semua kombinasi bekerja dengan baik dengan snipplet kode di bawah, snippet adalah untuk implementasi Angular-2, jika Anda perlu menambahkan hari, berikan angka positifDari, jika Anda perlu mengurangi angka negatifjumlah hari
sumber
Saya mendapatkan jarak tempuh yang baik dari tanggal. Js:
http://www.datejs.com/
Bagus!
Situs web menyertakan keindahan ini:
sumber
Jika Anda ingin mengurangi beberapa hari dan memformat tanggal Anda dalam format yang dapat dibaca manusia, Anda harus mempertimbangkan untuk membuat
DateHelper
objek kustom yang terlihat seperti ini:(Lihat juga Fiddle ini )
sumber
Lihat kode berikut, kurangi hari dari tanggal saat ini. Juga, atur bulan sesuai dengan tanggal yang dikurangi.
sumber
Saat mengatur tanggal, tanggal dikonversi menjadi milidetik, jadi Anda perlu mengubahnya kembali menjadi tanggal:
Metode ini juga mempertimbangkan perubahan tahun baru, dll.
sumber
Anda bisa menggunakan Javascript.
Untuk PHP,
Semoga ini bisa membantu Anda.
sumber
Saya dikonversi menjadi milidetik dan mengurangi hari lain bulan dan tahun tidak akan berubah dan logis
Semoga bisa membantu
sumber
sumber
Menggunakan sintaks fungsi JavaScript Modern
sumber
Coba sesuatu seperti ini
currDate bisa tanggal kapan saja
batas bisa menjadi perbedaan dalam jumlah hari (positif untuk masa depan dan negatif untuk masa lalu)
sumber
Ini akan memberi Anda hasil 10 hari terakhir, 110% berfungsi, Anda tidak akan mendapatkan masalah apa pun
Anda dapat mengubah hari pengurangan sesuai dengan kebutuhan Anda
sumber
sumber
sumber