我想以可讀格式顯示時間。所以我使用下面的js代碼。但是Chrome和IE的輸出結果是不同的。如何更改代碼以在所有瀏覽器中提供相同的輸出?日期格式化在Chrome中的結果與其他瀏覽器中的結果不同嗎?
在IE中輸出:上午12時46
在Chrome中:上午06點16
時區:UTC +05:30
var unReadableDate = "2016-01-25T00:46:00";
var newDate = new Date(unReadableDate);
//var timeZoneOffset = (new Date()).getTimezoneOffset();
//newDate.setMinutes(newDate.getMinutes() - timeZoneOffset);
alert(formatAMPM(newDate));
//below function formats time in am and pm
function formatAMPM(date) {
var hours = date.getHours();
var minutes = date.getMinutes();
var ampm = hours >= 12 ? 'pm' : 'am';
hours = hours % 12;
hours = hours ? hours : 12; // the hour '0' should be '12'
minutes = minutes < 10 ? '0' + minutes : minutes;
var strTime = hours + ':' + minutes + ' ' + ampm;
return strTime;
}
對於我來說,Chrome的輸出'1:46 am'。問題可能與用戶時區有關。順便說一句,Firefox也輸出'12:46 am'。 – Philipp
不要使用Date構造函數解析字符串,它不可靠(正如您發現的那樣)。不帶時區的ISO 8601日期時間字符串應視爲本地(即考慮系統時區偏移量),但某些瀏覽器不會,有些瀏覽器根本不會解析它。手動解析字符串,它只需要一個2行函數或庫。 – RobG