2015-04-21 21 views
-2

我想通过使用moment.js将GMT日期时间字符串显示为IST(GMT + 0530)时间格式。我将PHP日期时间值分配给一个javascript变量,然后使用moment.tz().format();方法将GMT时间转换为IST时间。但是,当我通过指定格式参数提醒转换后的值时,警报将显示带中文字母的格式化时间。 moment.js显然令人困惑。请帮我解决这个...使用moment.js将PHP myadmin时间字符串转换为适当格式的本地时区(IST)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

时区与输出格式无关。 – Nit

回答

1

你能得到中国字符的唯一方法是,如果你已经设置了中国区域与任langlocale功能。你可能已经在脚本的其他地方完成了。

关于您编写​​的代码,将输入解释为伦敦时间 - 与GMT或UTC不同。 (GMT与夏令时之间的伦敦交替使用夏令时)

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

你只需要做到这一点:

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'); 
+0

我没有在脚本中的任何地方提到任何locale或lang函数。实际上我不知道这些东西,因为我第一次使用js的时候,我不知道这些东西。无论如何谢谢你的头开始。我会尝试一下,让你知道如果这件事再次发生。 @Matt Johnson –

相关问题