Javascript 如何获得正确的日期(从我的时区)?

Javascript 如何获得正确的日期(从我的时区)?,javascript,date,time,timezone,timezone-offset,Javascript,Date,Time,Timezone,Timezone Offset,我正在尝试构建以下代码,将我的当前日期转换为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

我正在尝试构建以下代码,将我的当前日期转换为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);
var d=新日期();
var month=String(d.getMonth()+1);
var day=String(d.getDate());
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
var year=String(d.getFullYear());
var path=year+“/”+month+“/”+day+“/”+year+month+day+“.html”;
解决(路径);
运行时,代码可以工作,但有时会返回第二天的URL。我猜这与时区有关:我的时区是-3,我猜代码运行UTC?这有意义吗?我怎样才能解决这个问题


非常感谢你的帮助

您可以使用

const dt=luxon.DateTime.fromObject({zone:'America/Chicago'})


dt.tolocalString()

通过获取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);
var d=新日期();
变量月份=字符串(d.getUTCMonth()+1);
var day=String(d.getUTCDate());
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
var year=String(d.getUTCFullYear());
var path=year+“/”+month+“/”+day+“/”+year+month+day+“.html”;
解决(路径);

这样,您的所有计算都将以UTC为基准,并且无论您的时区或夏令时如何,您都将获得准确的日期。

您使用的函数都基于本地值,因此除非您的系统时钟设置为UTC,否则不以UTC为基准。此代码是在浏览器中运行还是在服务器(Node.js)上运行?