我已经看到了一些关于这方面的问题,然而似乎没有一个是对所有浏览器通用的解决方案。
在我的网页上,我正在获取UTC格式的MYSQL时间戳'YYYY-MM-DD hh:mm:ss‘。但是,我需要在Javascript中转换这个时间戳,以便仅以本地子午线格式显示时间。(即..晚上8时)。
我找到的最接近的解决方案是将'UTC‘附加到MySQL时间戳字符串并创建一个类似的date对象。但是,此解决方案在Safari中不起作用。如果有人知道解决方案,请让我知道。
提前谢谢你。
发布于 2016-01-21 07:22:52
首先将MySql date字符串转换为JavaScript Date对象。然后将此gmt日期对象转换为本地日期对象。
function mysqlGmtStrToJSDate(str) {
var t = str.split(/[- :]/);
// Apply each element to the Date function
return new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
}
function mysqlGmtStrToJSLocal(str) {
// first create str to Date object
var g = mysqlGmtStrToJSDate(str);
//
return new Date(g.getTime() - ( g.getTimezoneOffset() * 60000 ));
}发布于 2014-10-19 09:14:30
在JS中将MySQL timestamp转换为Date对象,然后使用getTimezoneOffset()是一种有效的方法。根据ECMAScript规范,Date应该类似于:YYYY-MM-DDTHH:MM:SS,因此您应该正确地格式化日期( string replace(' ', 'T') )
如果它仍然不起作用,这是一个在所有浏览器上都有效的日期格式列表,如here所述
var d=新日期( 2011,01,07);var d=新日期(2011,01,07,11,05,00);var d=新日期(“02/ 07 /2011”);var d=新日期(“02/07/2011 11:05:00");var d=新日期(1297076700000);var d=新日期(”2011 Mon Feb 07 11:05:00 GMT");
https://stackoverflow.com/questions/26446094
复制相似问题