const formatTime = (date, type) => {
date = date || new Date();
const Y = date.getFullYear();
let M = date.getMonth() + 1;
M = M > 9 ? M : ('0' + M);
let D = date.getDate();
D = D > 9 ? D : ('0' + D);
let h = date.getHours();
h = h > 9 ? h : ('0' + h);
let m = date.getMinutes();
m = m > 9 ? m : ('0' + m);
let s = date.getSeconds();
s = s > 9 ? s : ('0' + s);
// console.log(date.getTimezoneOffset())
return `${Y}-${M}-${D} ${h}:${m}:${s}`;
};
setInterval(() => {
console.log(formatTime())
}, 1000);
在小程序的方法如上:打开小程序时,确实是拿到当前时区的当前时间,但,当我在手机上手动设置别的时区时,小程序打印的时间还是之前时区的当前时间,必须是彻底的关闭小程序,重新打开,才能拿到手动设置好的别的时区的当前时间。这不合理,应该是能时时拿到设置好的时区的当前时间都对,我在h5页面也测试了这个问题(用微信扫一扫扫描h5的网址,然后手动在手机上设置时区),但是完成正常,能时时拿到设置好的时区的当前时间。只有在小程序上会出现这个问题(在开发工具上也正常)
写在onShow里执行
巧了我也遇到这个问题了,只能刷新浏览器才行,不然时间就会变化,我想的是监听手机或者电脑时区变更,让其刷新
你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)