微信小程序wxs日期时间处理的实现示例
作者:不知道起什么名字比较有文化 发布时间:2024-07-26 18:00:55
标签:小程序,wxs,日期,时间
WXS(WeiXin Script)是小程序的一套脚本语言,wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。其中包括了很多日常使用的javascript函数,在wxs中都是不能同样使用的。最近在做一个列表的时候,涉及到时间格式化操作。就遇到了这个问题,以前写好了的格式化工具函数直接拷贝到小程序项目的wxs文件中,函数不能正常执行。其中包括了下面的几个错误
正则表达式在字符串的replace函数中的使用方法不一样,不能直接使用var a = /[0-9]/这种方式声明使用。正确的方式为var reg = getRegExp("-", “g”);
获取当前时间不能通过new Date()获取,而是通过getDate方法获取。
getDate(‘2018/12/12')可以获取对应日期的date类型的时间。
1、时间戳转日期
在wxs中处理日期需要使用getDate(time),而不能使用new Date()来处理日期
在wxs文件中
var filter = {
formatNumber: function (n) {
n = n.toString()
return n[1] ? n : '0' + n
},
parseTime: function (time, type) {
if (time == null || type == '') {
return ''
}
if (arguments.length === 0) {
return null
}
var date = getDate(time);//在wxs中不能使用new Date()来处理日期
console.log("date", date);
var y = date.getFullYear();
var m = filter.formatNumber(date.getMonth() + 1);
var d = filter.formatNumber(date.getDate());
var h = filter.formatNumber(date.getHours());
var i = filter.formatNumber(date.getMinutes());
var s = filter.formatNumber(date.getSeconds());
var a = filter.formatNumber(date.getDay());
var time_str = "";
if (type == 'month') {
time_str = y + '-' + m;
} else if (type == 'date') {
time_str = y + '-' + m + '-' + d;
} else if (type == 'datetime') {
time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
} else if (type == 'onlyMonth') {
time_str = m;
} else if (type == 'onlyYear') {
time_str = y;
}
return time_str
},
}
module.exports = {
parseTime: filter.parseTime,
}
在wxml中使用
<wxs module="filters" src="../../../filters/filter.wxs"></wxs>
<text>{{filters.parseTime(time,'date')}}</text>
2、UTC转北京时间
UTC时间比北京时间晚8小时,在苹果手机上需要去除"Z"后再处理时间
var filter = {
formatNumber: function (n) {
n = n.toString()
return n[1] ? n : '0' + n
},
parseTime: function (time, type) {
if (time == null || time == '') {
return ''
}
if (arguments.length === 0) {
return null
}
var date;
if (typeof time === 'object') {
date = time
} else {
if (('' + time).length === 10) {
time = parseInt(time) * 1000
} else {
time = time.replace("Z", " ").replace(getRegExp('-', 'g'), "/")//去除Z,兼容苹果手机
var ts = time.split('T')
var t1 = ts[0]
var t2 = ts[1].split('.')[0]
time = t1 + " " + t2
time = getDate(time).getTime() + 8 * 3600000;//utc时间与北京时间相差8小时
}
date = getDate(time)//不能使用new Date()
}
var y = date.getFullYear();
var m = filter.formatNumber(date.getMonth() + 1);
var d = filter.formatNumber(date.getDate());
var h = filter.formatNumber(date.getHours());
var i = filter.formatNumber(date.getMinutes());
var s = filter.formatNumber(date.getSeconds());
var a = filter.formatNumber(date.getDay());
var time_str = "";
if (type == 'month') {
time_str = y + '-' + m;
} else if (type == 'date') {
time_str = y + '-' + m + '-' + d;
} else if (type == 'datetime') {
time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
} else if (type == 'onlyMonth') {
time_str = m;
} else if (type == 'onlyYear') {
time_str = y;
}
return time_str
},
}
module.exports = {
parseTime: filter.parseTime,
}
来源:https://juejin.cn/post/6986533090520727566


猜你喜欢
- 相关代码如下: 1. 创建sequence: 代码如下:CREATE SEQUENCE SEQU_DATA_DATAINFO IN
- 我就废话不多说了,大家还是直接看代码吧~def sq2(x,e): e = e #误差范围 low=
- 在利用Python进行系统管理的时候,特别是同时操作多个文件目录,或者远程控制多台主机,并行操作可以节约大量的时间。当 * 作对象数目不大时,
- 今天要做个搜索,用到了时间比较函数!以前多是直接比较时间,查询语句有长效率又不高~~~后来用了DateDiff函数,在调试的时候发现了一些问
- 我就废话不多说了,直接上代码吧!import urllib.requestimport requestsimport timeimport
- 目录关于Web服务器和应用服务器Python项目部署架构关于cgi、wsgi、uwsgi、http协议关于cgi、fastcgi、php-f
- 定义线程最简单的方法:使用target指定线程要执行的目标函数,再使用start()启动。语法:class threading.Thread
- 本文实例讲述了python实现根据月份和日期得到星座的方法。分享给大家供大家参考。具体实现方法如下:#计算星座def Zodiac(mont
- 属性(attribute):R中对象具备的特性特性描述了所代表的内容以及R解释该对象的方式很多时候两个对象之间的唯一差别在于它们的属性不同常
- 1. 新建文件夹if not os.path.exists(feature_dir): os.makedirs(f
- 背景:今天才申请了腾讯云+校园计划的1元服务器,安装了Centos7.0,在安装MySQL的时候,使用yum list | grep mys
- 数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 优化①:增加次数据文件,设置文件自动增长(
- @StartIndex为当前页起始序号,@EndIndex为当前页结束记录序号,可以直接作为参数输入,也可以通过输入PageSize和Pag
- GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。GreatSQL是MySQL的国产分支版本,使用上与MySQL一
- 最简单的实现一个队列至少满足2个方法,put和get.借助最小堆来实现.这里按"值越大优先级越高"的顺序.#coding
- 可能是我“火星”了,不过在 空虚 的 Blog 中学到的一招。这个技巧的原理是利用 iframe 载入本机各盘符的根目录,然后判断 ifra
- 1.高阶函数# 1.变量指向函数# 调用函数和函数本身print("-10的绝对值为:",abs(-10))print(
- 对单词最后一个字母的预测LSTM 的原理自己找,这里只给出简单的示例代码,就是对单词最后一个字母的预测。# LSTM 的原理自己找,这里只给
- SQL防注入代码一<?php /** * 防sql注入 * @author: zhuyubing@gmail.com * */ /**
- jupyter介绍jupyter的全称为Jupyter Notebook,之前一度被称为(IPython notebook),是一种交互式的