使用适当的格式将PHP myadmin时间字符串转换为本地时区(IST),时刻为js

时间:2015-04-21 11:05:57

标签: javascript momentjs

我想使用moment.js将GMT日期时间字符串显示为IST(GMT +0530)时间格式。我将PHP日期时间值分配给javascript变量,然后使用moment.tz().format();方法将GMT时间转换为IST时间。但是当我通过指定格式参数来警告转换后的值时,警报会显示带有中文字母的格式化时间。 moment.js显然令人困惑。请帮我解决这个问题......

  • GMT日期时间值为"2014-11-28 20:15:26",这是我从PHP变量获取的

  • "2014-11-29T01:45:26+05:30"是使用moment.tz(m,zone).format();

  • 将日期时间变量的转换值转换为IST的值
  • "11月 29日 2014 1:45 早上"是格式参数moment.tz(m,zone).format('MMM Do YYYY h:mm a');的转换值的值

我的代码是

var start_dates = '<?php echo $times_start; ?>';
var zone = "Asia/Kolkata";
var m = moment.tz(start_dates,'Europe/London').format();
var time = moment.tz(m,zone).format('MMM Do YYYY h:mm a');

1 个答案:

答案 0 :(得分:1)

如果您使用langlocale函数设置中文区域设置,那么获取中文字符的唯一方法就是。您可能已在脚本中的其他位置执行此操作。

关于您编写​​的代码,它将输入解释为伦敦的时间 - 这与GMT或UTC不同。 (伦敦在GMT和BST之间轮流使用夏令时。)

您也不需要格式化它只是为了再次解析它。

你只需要这样做:

var m = moment.utc(start_dates);
var time = m.tz(zone).format('MMM Do YYYY h:mm a');

这适用于任何支持的区域。但是如果你知道一个事实,你将永远转换到印度标准时间,因为它没有使用DST,你真的不需要时刻 - 时区。你可以这样做:

var m = moment.utc(start_dates);
var time = m.utcOffset("+05:30").format('MMM Do YYYY h:mm a');