将时间戳动态转换为不同的时区

时间:2016-06-20 05:02:10

标签: javascript jquery momentjs

我正在使用moment.js和moment-timezone。如何创建一个函数将2016-06-12 06:22:18 UTC时间转换为用户的时区时间,然后将时间格式化为Jun 12, 2015 6:22 PM

例如:

updateTime("2016-06-12 06:22:18");

如果在芝加哥,输出将是:

"Jun 12, 2016, 1:22 AM"

4 个答案:

答案 0 :(得分:1)

你可以尝试这样的事情。

moment.utc("2016-06-12 06:22:18", "YYYY-MM-DD HH:mm:ss").tz('America/Chicago').format("MMM D, YYYY, hh:mm a")

答案 1 :(得分:0)

您需要的功能如下:

function getLocalDate (input)
{
  var dt= moment.utc(input);
  dt.add(moment().utcOffset(),'minutes');
  return moment(dt).format('MMM D, YYYY, hh:mm a');
};

或者这个:

function getLocalDate(input)
{
  return moment.utc(input).local().format('MMM D, YYYY, hh:mm a');
};

答案 2 :(得分:0)

嘿,这个链接可以帮到你

https://gist.github.com/founddrama/2182389

https://www.sitepoint.com/managing-dates-times-using-moment-js/

http://momentjs.com/timezone/docs/

示例:

moment().format('MMMM Do YYYY, h:mm:ss a'); // June 20th 2016, 11:10:20 am
moment().format('dddd');                    // Monday
moment().format("MMM Do YY");               // Jun 20th 16
moment().format('YYYY [escaped] YYYY');     // 2016 escaped 2016
moment().format();                       
moment.tz('2016-01-01', 'America/Chicago').format('z');  

答案 3 :(得分:0)

您可能希望看一下这个答案:Get current timestamp from specific timezone

他们通过花时间在UTC并在特定时间转换它来解决

var utcEpochSeconds = dateObj.getTime() + (dateObj.getTimezoneOffset() * 60000);