我在javascript中非常陌生,并尝试通过设置时区获得日差。我的脚本如下
let localCurrentDate = new Date();
let booking_date = '06/11/2020';
var inputdate = booking_date + ' ' + '00:00:00 UTC+2';
const oneDay = 24 * 60 * 60 * 1000;
// date eg; "006/15/2020 00:00:00 UTC+2"
var utc2Date = inputdate;
let parsedDate = new Date(utc2Date);
//let currentDate = new Date();
let curDate = new Date(localCurrentDate.toLocaleString("en-US", {
timeZone: "Europe/Rome"
}));
let diffTime = Math.abs(curDate - parsedDate);
let diffDays = Math.ceil(diffTime / oneDay);
//return diffDays;
console.log("input date" + parsedDate);
console.log("current date" + curDate);
console.log("day difference: " +diffDays);
但是由于我将输入日期设置为时间00:00:00,并且当前时间获取了当前时间,所以现在相差+1天了。我可以知道如何在无效时间获得日差吗?或者如何通过获取当前日期将时间设置为00:00:00?我想设置和使用时区。谢谢!
尝试将您inputdate
的UTC
日期转换为日期,然后使用new Date()
获取inputdate
对象来获取当前时区。然后您可以得到difference
。
更新了代码let parsedDate = new Date((new Date(utc2Date)).toUTCString());
。
在下面检查。
let localCurrentDate = new Date();
let booking_date = '2020-06-12';
var inputdate = booking_date + ' ' + '00:00:00 UTC+2';
const oneDay = 24 * 60 * 60 * 1000;
// date eg; "006/15/2020 00:00:00 UTC+2"
var utc2Date = inputdate;
let parsedDate = new Date((new Date(utc2Date)).toUTCString());
//let currentDate = new Date();
let curDate = new Date();
let diffTime = Math.abs(curDate - parsedDate);
let diffDays = Math.ceil(diffTime / oneDay);
//return diffDays;
console.log("input date" + parsedDate);
console.log("current date" + curDate);
console.log("day difference: " +diffDays);
如果您只想与日期取得差异而不考虑时间(将时间设置为00:00:00.000
),请使用date.setHours(0,0,0,0);
。
这是代码片段。
let localCurrentDate = new Date();
let booking_date = '2020-06-12';
var inputdate = booking_date + ' ' + '00:00:00 UTC+2';
const oneDay = 24 * 60 * 60 * 1000;
// date eg; "006/15/2020 00:00:00 UTC+2"
var utc2Date = inputdate;
let parsedDate = new Date((new Date(utc2Date)).toUTCString());
//let currentDate = new Date();
let curDate = new Date();
curDate.setHours(0,0,0,0); // set time to 00:00:00.000
parsedDate.setHours(0,0,0,0); // set time to 00:00:00.000
let diffTime = Math.abs(curDate - parsedDate);
let diffDays = Math.ceil(diffTime / oneDay);
//return diffDays;
console.log("input date" + parsedDate);
console.log("current date" + curDate);
console.log("day difference: " +diffDays);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句