将UTC unixTimeStamp转换为MM / DD / YYYY HH:MM:SS TIMEZONE,无需任何外部JS库

时间:2017-08-16 14:55:13

标签: javascript datetime timezone

我有unix TimeStamp值,以UTC为单位。我想将时间戳转换为带有时区的本地日期和时间。

通过使用以下代码,我可以转换为UTC日期和时间

function convertTimestamp(timestamp) {
  var d = new Date(timestamp * 1000),
    yyyy = d.getFullYear(),
    mm = ('0' + (d.getMonth() + 1)).slice(-2),
    dd = ('0' + d.getDate()).slice(-2),
    hh = d.getHours(),
    h = hh,
    min = ('0' + d.getMinutes()).slice(-2),
    time;
    time = yyyy + '-' + mm + '-' + dd + ', ' + h + ':' + min + ' ';
  return time;
}

示例:

3680283088 => 05/10/2017 13:46:49 EDT

请建议使用时区将UTC时间戳转换为本地日期和时间的正确方法。

1 个答案:

答案 0 :(得分:2)

如果环境完全实施the ECMA-402 specification,您可以使用toLocaleString一些选项,如下所示:

.sort()

请注意,var d = new Date(yourTimestamp); var s = d.toLocaleString('en-US', {hour12: false, timeZoneName: 'short'}).replace(',',''); // example: "8/16/2017 12:58:07 PDT" 是因为在我的Chrome浏览器上,日期和时间部分之间有一个逗号,您没有要求提供逗号。另请注意,其他实现可能会有所不同,因此无法保证在任何地方都能提供完全相同的输出。