Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menambah 30 Minit pada Objek Tarikh JavaScript?

Bagaimana untuk Menambah 30 Minit pada Objek Tarikh JavaScript?

Mary-Kate Olsen
Lepaskan: 2025-01-04 10:50:40
asal
974 orang telah melayarinya

How to Add 30 Minutes to a JavaScript Date Object?

Bagaimana untuk menambah 30 minit pada objek JavaScript Date?

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);
Salin selepas log masuk

}
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.

/**

  • Menambahkan masa pada tarikh. Dimodelkan selepas fungsi MySQL DATE_ADD.
  • Contoh: dateAdd(new Date(), 'minit', 30) //kembali 30 minit dari sekarang.
  • https://stackoverflow.com/a /1214753/18511
  • @param tarikh Tarikh untuk bermula dengan
  • @param selang Satu daripada: tahun, suku, bulan, minggu, hari, jam, minit, saat
  • @param unit Bilangan unit selang yang diberikan untuk ditambah.
    */

fungsi dateAdd(tarikh, selang, unit) {
if(!( date instanceof Date))

return undefined;
Salin selepas log masuk

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;
Salin selepas log masuk

}
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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan