将GST时间转换为本地浏览器时间

时间:2015-06-09 15:47:45

标签: javascript

我以下列格式从服务器获得GST时间。

2015-06-09 09:07 PM 

我的要求是使用Javascript将此时间转换为本地浏览器时间。

帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

您应该始终使用ISO 8601作为日期,因为这是Javascript Date类的默认值: http://en.wikipedia.org/wiki/ISO_8601

如果您无法更改服务器代码,则必须手动解析,请尝试以下操作:

var dateTime = '2015-06-09 09:07 PM';

var splittedTime = dateTime.split(' ');
var date = splittedTime[0];
var time = splittedTime[1] + ' ' + splittedTime[2];
var hours = Number(time.match(/^(\d+)/)[1]);
var minutes = Number(time.match(/:(\d+)/)[1]);
var AMPM = time.match(/\s(.*)$/)[1];
if (AMPM == 'PM' && hours < 12) hours = hours + 12;
if (AMPM == 'AM' && hours == 12) hours = hours - 12;
var sHours = hours.toString();
var sMinutes = minutes.toString();
if (hours < 10) sHours = '0' + sHours;
if (minutes < 10) sMinutes = '0' + sMinutes;
// GST is GMT +4
time = new Date(date + 'T' + sHours + ':' + sMinutes + '+0400');
// Should be in local time
time.toString();

那应该给你一个当地时间。