Javascript 使用矩js将PHP myadmin时间字符串转换为格式正确的本地时区(IST)

Javascript 使用矩js将PHP myadmin时间字符串转换为格式正确的本地时区(IST),javascript,momentjs,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.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”
    是使用
    矩.tz(m,zone.format())将日期-时间变量的值转换为IST的值

  • “11月 29日 2014 1:45 早上"
    是具有格式参数的转换值
    矩.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');
var开始日期=”;
var zone=“亚洲/加尔各答”;
var m=moment.tz(开始日期,'Europe/London')。格式();
var time=moment.tz(m,zone).format('MMM Do YYYY h:mma');

获取汉字的唯一方法是使用
lang
locale
函数设置中文区域设置。您可能在脚本中的其他地方进行了设置

关于您编写的代码,它将输入解释为伦敦时间-这与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');

时区与输出格式无关。我的脚本中没有提到任何区域设置或lang函数。事实上,我不知道这些事情,因为我是第一次使用矩js,我不知道这些事情。无论如何,感谢您的帮助。我会尝试一下,如果这种情况再次发生,我会告诉您。@Matt约翰逊