wxs中 new date 报错

一、在 wxs 中的函数直接使用 new Date() 会报错,
原因是: 因为 WXS 中不能调用 javascript 中定义的函数或者变量,也不能调用小程序提供的
API,他的运行环境和 javascript 是隔离的。
在这里插入图片描述
解决方法: 使用 getDate(),使用var声明变量

二.在wxs中时间戳转为时间

	var filter = {
	  getDateTime: function (value) {
	    //不能使用 new Date()
	      var time = getDate(value);
	      var year = time.getFullYear();
	      var month = time.getMonth() + 1;
	      var date = time.getDate();
	      var hour = time.getHours();
	      var minute = time.getMinutes();
	      var second = time.getSeconds();
	      month = month < 10 ? "0" + month : month;
	      date = date < 10 ? "0" + date : date;
	      hour = hour < 10 ? "0" + hour : hour;
	      minute = minute < 10 ? "0" + minute : minute;
	      second = second < 10 ? "0" + second : second;
	      return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
	  }
	}
	// 导出对外暴露的属性
	module.exports = {
	  getDateTime: filter.getDateTime
	}
  1. 在.wxml中引入文件
<wxs module="filter" src="./func.wxs"></wxs>

3.这样就解决了 但是又遇到一个新问题 ios不支持 ,后来发现,可以转成Z结尾的value = value.replace(".000+0000",“Z”);
ios和android就都支持了。

<wxs module="a">
    var change = function(value) {
  value = value.replace(".000+0000","Z");
     var time = getDate(value);
    var year = time.getFullYear();
    var month = time.getMonth() + 1;
    var date = time.getDate();
    var hour = time.getHours();
    var minute = time.getMinutes();
    var second = time.getSeconds();
    month = month < 10 ? "0" + month : month;
    date = date < 10 ? "0" + date : date;
    hour = hour < 10 ? "0" + hour : hour;
    minute = minute < 10 ? "0" + minute : minute;
    second = second < 10 ? "0" + second : second;
    return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
    }
    module.exports.change = change
</wxs>
<view>{{a.change(time)}}</view>

 data: {
    // time:"2017-12-28T10:43:49Z"
    time:"2019-07-23T13:46:51.000+0000"
  },

本文章出处: https://www.jianshu.com/p/84285f60b104

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值