Penerangan masalah:
Gunakan JavaScript untuk menjana tatasusunan kira detik 7 hari.
Sebagai contoh, hari ini ialah 1 Oktober dan tatasusunan yang dijana ialah ["25 September", "26 September", "27 September", "28 September", "29 September" , 30 September", 1 Oktober "].
Kesukarannya ialah anda perlu menentukan sama ada bulan ini (dan mungkin bulan sebelumnya) mempunyai 30 atau 31 hari, dan terdapat juga 28 atau 29 hari pada bulan Februari Rui Nian.
Idea jawapan:
Ia tidak perlu terlalu rumit, ia sangat mudah dalam js, kerana objek tarikh js boleh mengambil bahagian dalam operasi matematik! ! ! Lihat kod di bawah:
var now = new Date('2012/3/2 12:00:00'); // 这个算法能自动处理闰年和非闰年。2012年是闰年,所以2月有29号 var s = ''; var i = 0; while (i < 7) { s += now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate() + '\n'; now = new Date(now - 24 * 60 * 60 * 1000); // 这个是关键!!!减去一天的毫秒数效果就是把日期往前推一天 i++; } console.log(s);
Hasilnya adalah seperti yang ditunjukkan di bawah:
Jika keperluan tidak menyatakan masa hari tertentu, tetapi dikira berdasarkan masa semasa sistem, ia juga mungkin.
Kira tatasusunan kira detik 7 hari ini berdasarkan masa sistem semasa:
var now = new Date(); // Algoritma ini boleh mengendalikan tahun lompat dan tahun bukan lompat secara automatik. 2012 adalah tahun lompat, jadi Februari mempunyai 29
var s = '';
var i = 0;
manakala (i < 7) {
s = now.getFullYear() '/' (now.getMonth() 1) '/' now.getDate() 'n';
Sekarang = Tarikh baharu(sekarang - 24 * 60 * 60 * 1000); ! ! Kesan penolakan milisaat sehari adalah untuk menolak tarikh ke hadapan sebanyak satu hari
saya ;
}
console.log(s);
Hasilnya adalah seperti yang ditunjukkan dalam rajah:
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang dalam mempelajari operasi objek tarikh js. Artikel seterusnya akan memperkenalkan anda kepada isu pemformatan tarikh dalam js Untuk maklumat lanjut, sila klik format Tarikh javascript.