需求是:将一个字符串比如str = ‘2018-12-17 12:00:00’转换为时间戳
错误的代码:
var str = ‘2018-12-17 12:00:00’;
var dateTime = new Date(str);
原因:以上代码只能在安卓手机上运行,ios是不兼容的(结果为NaN)。
然后在google的时候才知道是这么个问题,ios系统不支持 2018-03-29 这样格式的时间导致出现的这个问题,IOS只识别 2018/03/09 这样的格式。那么这样也好办,正则匹配替换一下试试。
简单解决方式
var data = '2018-03-09 12:00:00'
var format = data.replace(/-/g, '/')
var countDown = Date.parse(new Date(format))
封装一个函数,字符串转时间戳
function str2Stamp(time){
var date = time.substr(0, 10)
var hour = time.substr(11, 2) == '00' ? 0 : time.substr(11, 2).replace(/\b(0+)/gi, "");
var minute = time.substr(14, 2) == '00' ? 0 : time.substr(14, 2).replace(/\b(0+)/gi, "");
var second = time.substr(17, 2) == '00' ? 0 : time.substr(17, 2).replace(/\b(0+)/gi, "");
var timestamp = parseInt(new Date(date).getTime() / 1000) + parseInt(hour) * 3600 + parseInt(minute) * 60 + parseInt(second) - 28800
return new Date(timestamp*1000);
}
WXS中字符串转时间戳
普通的JS 是怎么使用,这里,利用 JS 的 RegExp 对象,将 g 参数单拿了出来。
string.replace(new RegExp(pattern,'g'),"b");
在看看 wxs,生成 regexp 对象需要使用 getRegExp函数。getRegExp(pattern[, flags])
string.replace(getRegExp(pattern,'g'),"b");
实例中我们就可以这样用了
<view>{{util.isStart(2020-08-05 00:00:00)}}</view>
<wxs module="util">
var isStart = function (startTime) {
startTime = startTime.replace(getRegExp('-','g'),"/");
var curTime = getDate().getTime()
startTime = getDate(startTime).getTime()
return startTime > curTime ? true : false
}
module.exports = {
isStart: isStart,
}
</wxs>
参考地址:https://www.jianshu.com/p/cfbd97d31c39
参考地址:https://blog.csdn.net/sheng_xinjun/article/details/85048809
参考地址:https://blog.csdn.net/weixin_42514606/article/details/102262018