Bagaimana saya bisa menerjemahkan kode pseudo ini ke dalam js yang berfungsi [jangan khawatir tentang dari mana tanggal akhir berasal kecuali bahwa itu adalah tanggal javascript yang valid].
var myEndDateTime = somedate; //somedate is a valid js date
var durationInMinutes = 100; //this can be any number of minutes from 1-7200 (5 days)
//this is the calculation I don't know how to do
var myStartDate = somedate - durationInMuntes;
alert("The event will start on " + myStartDate.toDateString() + " at " + myStartDate.toTimeString());
javascript
brendan
sumber
sumber
.getTime()
. Contoh:var myStartDate = new Date(myEndDateTime.getTime() + durationInMinutes * MS_PER_MINUTE);
var myStartDate = somedate.addMinutes(-durationInMuntes);
Saya berasumsi bahwa suatu hari adalah objek Datevar d = new Date("2017-10-29 01:50:00"), e = new Date(d.getTime() + 20 * 60000);
Anda harapkane
untuk menjadi02:10:00
, kan? Nggak.01:10:00
. DST bilang hai. Dan kemudian ada lompatan detik ...Anda juga dapat menggunakan get dan atur menit untuk mencapainya:
sumber
setMinutes()
cukup pintar untuk menangani menit negatif dengan benar. Jadi, jika tanggal mulai 03:05, dan Anda ingin mengurangi 30 menit, Anda akan melewati dalam-25
untuk setMinutes (), yang cukup pintar untuk mengetahui bahwa3:-25
adalah2:35
. (Yaitu tidak membuang pengecualian.).setMinutes(...)
kekuatan menanganiint
nilai. Jika Anda menetapkan1.5 minutes
ke dalamDate
itu hanya akan mengatur1 minute
dan menjaga detik sama seperti sebelumnya.Semuanya hanya kutu, tidak perlu menghafal metode ...
atau
memperbarui
Setelah bekerja dengan momentjs, saya harus mengatakan ini adalah perpustakaan yang luar biasa yang harus Anda periksa. Memang benar bahwa kutu bekerja dalam banyak kasus membuat kode Anda sangat kecil dan Anda harus mencoba membuat kode Anda sekecil mungkin untuk apa yang perlu Anda lakukan. Tetapi untuk hal yang rumit, gunakan momentjs.
sumber
moment.js memiliki beberapa metode kenyamanan yang sangat bagus untuk memanipulasi objek tanggal
Itu .subtract metode, memungkinkan Anda untuk mengurangi sejumlah unit waktu dari tanggal, dengan menyediakan jumlah dan string TIMEUNIT.
sumber
Inilah yang saya temukan:
Sumber:
http://www.javascriptcookbook.com/article/Perform-date-manipulations-based-on-adding-or-subtracting-time/
https://stackoverflow.com/a/12798270/1873386
sumber
Anda dapat mengubah cap waktu Unix menjadi waktu konvensional dengan menggunakan. sebagai
new Date()
contohsumber
Coba seperti di bawah ini:
sumber
Inilah yang saya lakukan: lihat di Codepen
sumber
new Date()
, tetapi memiliki beberapa tanggal yang ditentukan, dan hanya bertanya tentang pengurangan menit. Juga, kode Anda tidak berfungsi - ia mengembalikan timestamp UNIX bukan objek Tanggal.Perpanjang kelas Tanggal dengan fungsi ini
Jadi, Anda dapat menambah atau mengurangi sejumlah menit, detik, jam, hari ... ke tanggal berapa pun.
sumber