JavaScript - 使用UTC偏移获取当前日期

sta*_*ato 3 javascript date

如何根据UTC偏移量获取当前日期?例如,澳大利亚的UTC偏移量为UTC +10:00,已经是5月24日.

我可以获得UTC日期和时间,但找不到任何以UTC偏移量为因子的日期方法.

vic*_*tmo 7

一旦你有了偏移量(在这种情况下是10小时),使用这个函数:

function getDateWithUTCOffset(inputTzOffset){
    var now = new Date(); // get the current time

    var currentTzOffset = -now.getTimezoneOffset() / 60 // in hours, i.e. -4 in NY
    var deltaTzOffset = inputTzOffset - currentTzOffset; // timezone diff

    var nowTimestamp = now.getTime(); // get the number of milliseconds since unix epoch 
    var deltaTzOffsetMilli = deltaTzOffset * 1000 * 60 * 60; // convert hours to milliseconds (tzOffsetMilli*1000*60*60)
    var outputDate = new Date(nowTimestamp + deltaTzOffsetMilli) // your new Date object with the timezone offset applied.

    return outputDate;
}
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您将使用:

var timeInAustralia = getDateWithUTCOffset(10);
Run Code Online (Sandbox Code Playgroud)

这将返回一个Date对象.您仍然需要根据自己的喜好格式化日期.

我同意@Frax,如果您不介意在项目中添加其他依赖项,Moment是一个很棒的库.

祝好运