參考:https://www.cnblogs.com/catgatp/p/13178934.html
用JS將指定時間轉化成用戶當地時區的時間:
參考:https://www.cnblogs.com/simendancer/p/5165023.html
容易理解:
https://blog.csdn.net/u012193330/article/details/79637660?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-79637660.nonecase&utm_term=js0%E6%97%B6%E5%8C%BA%E7%9A%84%E6%97%B6%E9%97%B4%E8%BD%AC%E5%8C%96%E4%B8%BA%E5%BD%93%E5%9C%B0%E6%97%B6%E9%97%B4
js獲取時區:
https://blog.csdn.net/qawser7335527/article/details/80179223
var d = new Date(); var local = d.getTime(); var offset = d.getTimezoneOffset() * 60000; var localUtc = new Date().getTimezoneOffset() / 60; var utcTime; if (localUtc > 0) { utcTime = local - offset; } else { utcTime = local + offset; } console.log("localUtc: " + localUtc); var localTime = utcTime + 3600000 * Math.abs(localUtc); console.log("localTime: " + localTime); var nd = new Date(localTime); var YY = nd.getFullYear() + "年"; var MM = nd.getMonth() + 1 + "月"; var dd = nd.getDate() + "日"; var hh = nd.getHours() + ":"; var mm = nd.getMinutes() + ":"; var ss = nd.getSeconds(); console.log(YY + MM + dd + hh + mm + ss);
獲取當前時區的簡單代碼:
console.log(new Date().getTimezoneOffset()/60) // -8
已知目標時區,根據本地時間獲取目標時區的時間:
方法1:
var timezone = 8; //目標時區時間,東八區 var offset_GMT = new Date().getTimezoneOffset(); // 本地時間和格林威治的時間差,單位為分鍾 var nowDate = new Date().getTime(); // 本地時間距 1970 年 1 月 1 日午夜(GMT 時間)之間的毫秒數 var targetDate = new Date( nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000 ); console.log("東8區現在是:" + targetDate);
方法2(目前使用的):
// 將傳入的時間轉換為new Date時間格式 const toDate = new Date("2020-09-10 06:26:59"); console.log(toDate.getHours()); var d = toDate; var localTime = d.getTime(); var localOffset = d.getTimezoneOffset() * 60000; //getTimezoneOffset()返回是以分鍾為單位,需要轉化成ms var utc = localTime + localOffset; var offset = 9; //以韓國時間為例,東9區 var korean = utc + 3600000 * offset; var nd = new Date(korean); console.log("Korean time is " + nd.toLocaleString()); // Korean time is 2020/9/10 上午7:26:59