我正试图构建这段代码,将我的当前日期转换为URL路径:
var d = new Date();
var month = String(d.getMonth() + 1);
var day = String(d.getDate());
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
var year = String(d.getFullYear());
var path = year + "/" + month + "/" + day + "/"+ year + month + day + ".html";
resolve(path);
运行时,代码可以工作,但有时会在第二天返回的URL。我猜这与时区有关:我的时区是-3,我猜代码运行UTC?这有道理吗?我该如何解决这个问题?
非常感谢你的帮助!
使用Luxon 可以轻松做到这一点
const dt = luxon.DateTime.fromObject({zone: 'America/Chicago'});
dt.toLocaleString();
您可以通过获取UTC数据来消除过时的猜测计算。使用类似的东西-
var d = new Date();
var month = String(d.getUTCMonth() + 1);
var day = String(d.getUTCDate());
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
var year = String(d.getUTCFullYear());
var path = year + "/" + month + "/" + day + "/"+ year + month + day + ".html";
resolve(path);
这样,您所有的计算都将与UTC有关,无论您的时区或夏令时如何,您都将始终获得准确的日期。