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

Convert PHP myadmin time string to local time zone(IST) with proper format with moment js

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

我的密码是

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

获得中文字符的唯一方法是使用 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');