很好,2022.04.01愚人节让我们相遇这个bug
Android 下JS部分 Date.toLocaleString() 无效代码非常短,代码片段已经提供。 js [代码]const app = getApp()[代码][代码]Page({[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]datedisplay:[代码][代码]""[代码][代码],[代码][代码] [代码][代码]},[代码][代码] [代码][代码]onLoad: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]let d = [代码][代码]new[代码] [代码]Date()[代码][代码] [代码][代码]this[代码][代码].setData({date:d})[代码][代码] [代码][代码]this[代码][代码].setData({datedisplay:d.toLocaleString()})[代码][代码] [代码][代码]},[代码][代码]})[代码] wxml [代码]<[代码][代码]wxs[代码] [代码]module[代码][代码]=[代码][代码]"util"[代码][代码]>[代码][代码] [代码][代码]function toLocal(time) {[代码][代码] [代码][代码]d = getDate(time)[代码][代码] [代码][代码]if (d == "Invalid Date") return ""[代码][代码] [代码][代码]return d.toLocaleString()[代码][代码] [代码][代码]}[代码][代码] [代码][代码]module.exports.toLocal = toLocal[代码][代码]</[代码][代码]wxs[代码][代码]>[代码] [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"intro"[代码][代码]><[代码][代码]text[代码][代码]>[代码][代码]JS toLocaleString:[代码][代码]{{datedisplay}}[代码][代码]</[代码][代码]text[代码][代码]>[代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"intro"[代码][代码]>[代码][代码]<[代码][代码]text[代码][代码]>[代码][代码]WXS toLocaleString:[代码][代码]{{util.toLocal(date)}}[代码][代码]</[代码][代码]text[代码][代码]></[代码][代码]view[代码][代码]>[代码] 做的事情也非常简单,对比js部分的Date.toLocaleString() 和wxs部分Date.toLocaleString() 安卓下截图: [图片] iOS截图 [图片] BUG显而易见。很显然在安卓里,js框架内的Date对象toLocaleString()被简单地作为toString()处理了,其他toLocaleTimeString(), toLocaleDateString()都存在问题。这个问题非常久了,希望赶紧处理。这都是小程序框架基础函数级别的服务,有这种问题那么久没发现也是一个奇迹。
2022-04-01