Saya memiliki kotak masukan kalender awal dan kotak masukan kalender akhir. Kami ingin default mulai kotak masukan kalender 30 hari sebelum tanggal sekarang dan kotak masukan kalender akhir menjadi tanggal saat ini. Ini tanggal vars saya.
var today = new Date(),
dd = today.getDate(),
mm = today.getMonth(),
yyyy = today.getFullYear(),
month = ["January", "February", "March",
"April", "May", "June", "July", "August",
"September", "October" "November", "December"],
startdate = month[mm] + ", " + yyyy.toString();
Tanggal akhir akan menjadi sesuatu seperti var enddate = startdate - 30;
Jelas ini tidak akan berhasil.
Jadi jika tanggal sekarang adalah 30 Desember 2011, saya ingin tanggal mulai terbaca 1 Desember 2011.
EDIT: Pertanyaan saya dijawab ... semacam. Date.today();
dan Date.today().add(-30);
bekerja tapi saya butuh tanggal dalam format January 13, 2012
. Tidak Fri Jan 13 2012 10:48:56 GMT -055 (EST)
. Ada bantuan?
EDIT LEBIH BANYAK: Saat tulisan ini dibuat, tahun 2018. Gunakan saja Moment.js . Itu yang terbaik.
javascript
jquery
Jesse Atkinson
sumber
sumber
Jawaban:
Coba gunakan pustaka tanggal JavaScript Datejs yang sangat baik (yang asli tidak lagi dipertahankan sehingga Anda mungkin tertarik dengan garpu yang dipelihara secara aktif ini ):
Date.today().add(-30).days(); // or... Date.today().add({days:-30});
[Sunting]
Lihat juga perpustakaan tanggal JavaScript Moment.js yang sangat baik :
moment().subtract(30, 'days'); // or... moment().add(-30, 'days');
sumber
moment( moment().subtract(30, 'days') ).format("YYYY-MM-DD")
moment()
pendekatan dan menambahkantoDate()
metode untuk mendapatkan kembali objek tanggal JavaScript. Terima kasih!Coba ini
var today = new Date() var priorDate = new Date().setDate(today.getDate()-30)
Seperti dicatat oleh @Neel, metode ini kembali dalam format Javascript Timestamp. Untuk mengubahnya kembali ke objek tanggal, Anda perlu meneruskan di atas ke objek Tanggal baru;
new Date(priorDate)
.sumber
new Date(priorDate)
setDate()
suatuDate
objek. Tidak mungkin untuk mendiagnosis tanpa melihat kode Anda.Inilah solusi buruk untuk Anda:
var date = new Date(new Date().setDate(new Date().getDate() - 30));
sumber
startDate = new Date(today.getTime() - 30*24*60*60*1000);
The
.getTime()
Metode mengembalikan JS timestamp standar (milidetik sejak Jan 1/1970) di mana Anda dapat menggunakan operasi matematika biasa, yang bisa diberi makan kembali ke objek Tanggal langsung.sumber
Dapatkan 30 hari ke depan mulai hari ini
let now = new Date() console.log('Today: ' + now.toUTCString()) let next30days = new Date(now.setDate(now.getDate() + 30)) console.log('Next 30th day: ' + next30days.toUTCString())
Dapatkan formulir 30 hari terakhir hari ini
let now = new Date() console.log('Today: ' + now.toUTCString()) let last30days = new Date(now.setDate(now.getDate() - 30)) console.log('Last 30th day: ' + last30days.toUTCString())
sumber
Javascript dapat menanganinya tanpa pustaka eksternal.
var today = new Date(); var dateLimit = new Date(new Date().setDate(today.getDate() - 30)); document.write(today + "<br/>" + dateLimit)
sumber
Mudah.
(Using Vanilla JS)
let days=30; this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);
ISOFormat?
let days=30; this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();
sumber
let today = new Date()
let last30Days = new Date(today.getFullYear(), today.getMonth(), today.getDate() - 30)
last30Days
akan berada di Objek Tanggalsumber
Kode Javascript Vanilla 1 liner sederhana :
const priorByDays = new Date(Date.now() - days * 24 * 60 * 60 * 1000)
Misalnya:
days = 7
Asumsikan arusdate = Fri Sep 18 2020 01:33:26 GMT+0530
Hasilnya adalah:
Fri Sep 11 2020 01:34:03 GMT+0530
cap waktu:
Date.now() - days * 24 * 60 * 60 * 1000
ISOString:
new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString()
sumber
Saya menggunakan date.js . Ia menangani ini dengan mudah dan menangani semua kejahatan tahun kabisat.
sumber
Saya lebih suka momen js
startDate = moment().subtract(30, 'days').format('LL') // January 29, 2015 endDate = moment().format('LL'); // February 28, 2015
sumber
Ini adalah versi ES6
let date = new Date() let newDate = new Date(date.setDate(date.getDate()-30)) console.log(newDate.getMonth()+1 + '/' + newDate.getDate() + '/' + newDate.getFullYear() )
sumber
Anda dapat melakukannya hanya melalui 1 baris kode menggunakan momen di Node JS. :)
let lastOneMonthDate = moment().subtract(30,"days").utc().toISOString()
Tidak ingin format UTC, LEBIH MUDAH: P
let lastOneMonthDate = moment().subtract(30,"days").toISOString()
sumber
Jika Anda tidak suka momentjs, Anda dapat menggunakan ini:
let x = new Date()
x.toISOString(x.setDate(x.getDate())).slice(0, 10)
Pada dasarnya ini mendapatkan tanggal saat ini (nilai numerik tanggal bulan ini) dan kemudian menetapkan nilainya. Kemudian itu diubah ke dalam format ISO dari mana saya mengiris tanggal numerik murni (yaitu 2019-09-23)
Semoga bisa membantu seseorang.
sumber