Untuk menambah 30 minit pada objek JavaScript Date, anda boleh gunakan langkah berikut:
Menggunakan Perpustakaan
Jika anda melakukan banyak kerja tarikh, anda mungkin ingin melihat ke dalam perpustakaan tarikh JavaScript seperti Luxon, Day.js atau Moment.js. Contohnya, dengan Moment.js, ini hanyalah:
var newDateObj = moment(oldDateObj).add(30, 'm').toDate();
Vanilla JavaScript
Ini seperti jawapan huru-hara, tetapi dalam satu baris:
var newDateObj = new Date(oldDateObj.getTime() diff*60000);
Di mana perbezaan ialah perbezaan dalam minit yang anda inginkan daripada masa oldDateObj. Malah ia boleh menjadi negatif.
Atau sebagai fungsi boleh guna semula, jika anda perlu melakukan ini di beberapa tempat:
fungsi addMinutes(tarikh, minit) {
return new Date(date.getTime() + minutes*60000);
}
Dan sekiranya ini tidak jelas, sebab kami mendarab minit dengan 60000 adalah untuk menukar minit kepada milisaat.
Berhati-hati dengan JavaScript Vanila. Tarikh Sukar!
Anda mungkin fikir anda boleh menambah 24 jam pada tarikh untuk mendapatkan tarikh esok, bukan? Salah!
Ternyata, jika pengguna memerhatikan waktu penjimatan siang, sehari tidak semestinya 24 jam. Ada satu hari dalam setahun yang hanya 23 jam, dan satu hari setahun yang 25 jam. Contohnya, di kebanyakan Amerika Syarikat dan Kanada, 24 jam selepas tengah malam, 2 Nov 2014, masih 2 Nov:
const NOV = 10; //kerana bulan JS dimatikan satu...
addMinutes(new Date(2014, NOV, 2), 60*24); //Di AS, mencetak 11 malam pada 2 Nov, bukan 12 pagi 3 Nov!
Inilah sebabnya mengapa menggunakan salah satu perpustakaan yang disebutkan di atas adalah pertaruhan yang lebih selamat jika anda perlu melakukan banyak kerja dengan ini.
Di bawah ialah versi yang lebih generik bagi fungsi ini yang saya tulis. Saya masih mengesyorkan menggunakan perpustakaan, tetapi itu mungkin berlebihan/tidak mungkin untuk projek anda. Sintaks dimodelkan selepas fungsi MySQL DATE_ADD.
/**
fungsi dateAdd(tarikh, selang, unit) {
if(!( date instanceof Date))
return undefined;
var ret = new Date(date); //jangan tukar tarikh asal
var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
suis(String(interval ).toLowerCase()) {
case 'year' : ret.setFullYear(ret.getFullYear() + units); checkRollover(); break; case 'quarter': ret.setMonth(ret.getMonth() + 3*units); checkRollover(); break; case 'month' : ret.setMonth(ret.getMonth() + units); checkRollover(); break; case 'week' : ret.setDate(ret.getDate() + 7*units); break; case 'day' : ret.setDate(ret.getDate() + units); break; case 'hour' : ret.setTime(ret.getTime() + units*3600000); break; case 'minute' : ret.setTime(ret.getTime() + units*60000); break; case 'second' : ret.setTime(ret.getTime() + units*1000); break; default : ret = undefined; break;
}
kembalikan ret;
}
Tunjuk cara jsFiddle yang berfungsi.
Atas ialah kandungan terperinci Bagaimana untuk Menambah 30 Minit pada Objek Tarikh JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!