使用Javascript将当前时间的MySQL时间戳转换为
我已经看到了一些关于此问题的问题,但是对于所有浏览器而言,没有一个可以作为通用解决方案。使用Javascript将当前时间的MySQL时间戳转换为
在我的网页上,我以UTC获取MYSQL时间戳'YYYY-MM-DD hh:mm:ss'。但是,我需要在Javascript中将此时间戳转换为仅显示当地子午线格式的时间......(即下午8:00)。
我发现最接近的解决方案是将'UTC'附加到MySQL timstamp字符串并创建一个类似的日期对象。但是,此解决方案在Safari中不起作用。在任何人都知道的解决方案,请让我知道。
预先感谢您。
在JS中转换MySQL timestamp
到Date
对象然后使用getTimezoneOffset()
是一种有效的方法。根据ECMAScript规范的Date
应该是这个样子:YYYY-MM-DDTHH:MM:SS
,所以你应该正确格式的日期(string replace(' ', 'T')
)
如果仍不能正常工作,这是描述here的日期格式在所有浏览器的工作列表
var d = new Date(2011, 01, 07); var d = new Date(2011, 01, 07, 11, 05, 00); var d = new Date("02/07/2011"); var d = new Date("02/07/2011 11:05:00"); var d = new Date(1297076700000); var d = new Date("Mon Feb 07 2011 11:05:00 GMT");
哪里会使用getZoneOffSet()? – 2014-10-19 02:00:18
你将会有'var date = new Date(); date.setTime(1297076700000 - (date.getTimezoneOffset()* 60 * 1000)); dateString = date.toUTCString();' – 2014-10-19 03:11:29
首先转换MySQL的日期字符串转换成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));
}
还有'时刻时区',可以提供一个跨浏览器的方式来做你想做的。请参阅:http://momentjs.com/timezone/ – Gohn67 2014-10-19 01:07:07