toISOString()轉換解决方式

台灣的所屬時區比協調世界時快8小時,UTC+8 或是 GMT+8 ,這裡的 +8 是指比 UTC 或是 GMT 快8小時的意思。 就如Sun Jun 30 2019 00:00:00 GMT+0800 (台北標準時間),使用toISOString().substr(0, 10)轉換擷取前面10個字串,會得到2019-06-29,相差了一天的日期。

GMT+0800 (台北標準時間),toISOString()轉換因為時區問題會相差8小時。

//解决方式
const date = new Date(+new Date() + 8 * 3600 * 1000); //加入相差的8小時
const currentMonth = date.toISOString().substr(0, 10);

//最準確的方式:
var year=new Date().getFullYear();//年
if (year< 1900) year = year + 1900;
var month = new Date().getMonth() + 1;//月
if (month < 10) month = '0' + month;
var day = new Date().getDate();//日
if (day < 10) day = '0' + day;
var hour = new Date().getHours();//小時
if (hour < 10) hour = '0' + hour;
var minute = new Date().getMinutes();//分鐘
if (minute < 10) minute = '0' + minute;
var second = new Date().getSeconds();//秒
if (second < 10) second = '0' + second;
var str=year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;

您也可能喜歡這些文章