微信使用wxs时用到substr截取字符串 出现渲染层错误。substr is not afunction

utils/filter.wxs下

在这里插入图片描述

使用

在这里插入图片描述

报错

在这里插入图片描述

原因:现在的wxs还不支持substr,可以用Substring,slice
来自官方文档(取自https://www.jianshu.com/p/097d47a83d5e
  1. wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
  2. wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
  3. wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript
    文件中定义的函数,也不能调用小程序提供的API。
  4. wxs 函数不能作为组件的事件回调。
  5. 由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android设备上二者运行效率无差异。
注意

wxs目前似乎并不支持ES6(至少let不能使用)
wxs文件不能被js文件引用。wxs文件能引用wxs文件。

三种方法区别

在这里插入图片描述

微信小程序的 WXS 中,由于 WXS 不支持直接使用 Date 对象和相关方法,因此我们需要通过字符串的处理来计算距离生日的间,并获取今天、明天、后天以及月份和日期。 以下是一个示例代码: ```javascript // 获取当前日期 var now = new Date(); var today = now.getTime(); // 当前日期的间戳 // 获取生日日期字符串 var birthdayString = '2022-01-01'; // 出生日期字符串,格式为 'YYYY-MM-DD' // 计算生日的间戳 var birthday = new Date(birthdayString); birthday.setFullYear(now.getFullYear()); // 设置生日年份为今年,确保不会跨年份计算 var birthdayTime = birthday.getTime(); // 计算距离生日的间差 var timeDiff = birthdayTime - today; // 计算距离生日的天数 var daysDiff = Math.floor(timeDiff / (1000 * 60 * 60 * 24)); // 根据天数判断是今天、明天、后天还是其他日期 var result; if (daysDiff === 0) { result = '今天'; } else if (daysDiff === 1) { result = '明天'; } else if (daysDiff === 2) { result = '后天'; } else { result = birthday.getMonth() + 1 + '-' + birthday.getDate(); } console.log(result); // 输出结果 ``` 你可以将上述代码嵌入到你的微信小程序中,将 `birthdayString` 替换为你需要计算的出生日期字符串,然后通过 `console.log(result)` 输出结果。这样就能够根据出生日期字符串获取距离生日的间,返回今天、明天、后天或者月份和日期的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值