代码非常短,代码片段已经提供。
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()都存在问题。这个问题非常久了,希望赶紧处理。这都是小程序框架基础函数级别的服务,有这种问题那么久没发现也是一个奇迹。
都2020年了,异教徒毫无动静
一年过去了……一人血书求修复
同问。在安卓8.0.0版本上 date.toLocalString() 同样不好使
https://www.jianshu.com/p/90220a55f542
这里附一个帖子,是有热心网友在测试IOS和安卓部分版本下
JS系统函数的一些 支持/不支持的情况。
希望官方能快速解决这个问题。
2021年了 还是这个问题 我又找来了
2024年5月21日,还没解决
2024年了,可能根本没考虑解决
2023/11/6 问题依旧如此 “官方人员:嘿嘿嘿,老子就不改,你们要用我的东西就得学会适应我【滑稽】”
2023年了还不解决
写了一下两个 函数 ,可以解决这个问题 效果图如上
下面这个是处理日期部分 :年月日
function getYearMonthDay(date) { if (!date) { var myDate = new Date(); } else { var myDate = new Date(date); } let Y = myDate.getFullYear() + "-"; let M = myDate.getMonth() + 1 < 10 ? "0" + (myDate.getMonth() + 1) + "-" : myDate.getMonth() + 1 + "-"; let D = myDate.getDate() < 10 ? "0" + myDate.getDate() : myDate.getDate(); let YearMonthDay = Y + M + D; return YearMonthDay; }
下面这个是具体的时间 :时分秒
function getTime(date) { if (!date) { var d = new Date(); } else { var d = new Date(date); } let hours = d.getHours() < 10 ? "0" + d.getHours() : d.getHours(); let minutes = d.getMinutes() < 10 ? "0" + d.getMinutes() : d.getMinutes(); let seconds = d.getSeconds() < 10 ? "0" + d.getSeconds() : d.getSeconds(); let timeNow = hours + ":" + minutes + ":" + seconds; return timeNow; }
使用方法:
getYearMonthDay(date) + " " + getTime(date); date 是你要处理的日期时间 变量 最后的结果 就是 日期和时间的拼接,效果如最上面的图所示
2023.5.26 问题依旧没解决