如何根据UTC偏移量获取当前日期?例如,澳大利亚的UTC偏移量为UTC +10:00,已经是5月24日.
我可以获得UTC日期和时间,但找不到任何以UTC偏移量为因子的日期方法.
一旦你有了偏移量(在这种情况下是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是一个很棒的库.
祝好运