小程序日期和时间戳转换

这篇博客介绍了如何在JavaScript中将日期字符串转换为时间戳,并使用自定义函数格式化时间。此外,还展示了在WXML中使用WXS模块进行时间格式化和时间差计算的方法,如'刚刚'、'1分钟前'等动态显示时间。

日期转时间戳

let datetime = '2021-06-06 11:22:33'
let timestamp = new Date(datetime.replace(/-/g,"/")).getTime()/1000

时间戳转日期

util.js

const formatNumber = n => {
  n = n.toString()
  return n[1] ? n : `0${n}`
}

/**
 * 时间戳转化为年 月 日 时 分 秒
 * number: 传入时间戳
 * format:返回格式,支持自定义,但参数必须与formateArr里保持一致
 */
function formatTime2(number, format) {
  var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
  var returnArr = [];
  var date = new Date(number * 1000);
  returnArr.push(date.getFullYear());
  returnArr.push(formatNumber(date.getMonth() + 1));
  returnArr.push(formatNumber(date.getDate()));
  returnArr.push(formatNumber(date.getHours()));
  returnArr.push(formatNumber(date.getMinutes()));
  returnArr.push(formatNumber(date.getSeconds()));
  for (var i in returnArr) {
    format = format.replace(formateArr[i], returnArr[i]);
  }
  return format;
}

module.exports = {
  formatTime2
在微信小程序中,实现时间与时间戳相互转换有多种方法。 ### 时间戳转换日期格式 - **方法一:使用自定义函数** 可以在`utils`文件夹下创建一个`js`文件,编写时间戳转换日期的函数并导出。例如,`timestampToTime`函数可以将时间戳转换日期格式,如`timestampToTime(1591841249,2)`可返回`2020年06月11日`,之后在需要使用的`js`文件中声明使用该函数即可 [^2]。 - **方法二:使用`wxs`文件** 新建`dateUtils.wxs`文件,编写如下代码: ```wxs var dateTimeFormat = function time_format(time) { // 判断时间戳是否为13位数,如果不是则*1000,时间戳只有13位数(带毫秒)10(不带毫秒)位数的 if(time.toString().length == 13){ var tme = getDate(time); } else { var tme = getDate(time * 1000); } var Y = tme.getFullYear(); var M = (tme.getMonth() + 1 < 10 ? '0' + (tme.getMonth() + 1) : tme.getMonth() + 1); var D = tme.getDate(); var h = tme.getHours(); var m = tme.getMinutes(); var s = tme.getSeconds(); var tem1 = Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s; return tem1; } // 导出 module.exports = { time_format: time_format } ``` 在需要使用的地方引入该`wxs`文件并调用`time_format`函数即可 [^3]。 ### 日期转换时间戳 在微信小程序开发时,若后台传入的是日期,需要将其转换时间戳来做相应处理。可以将相关转换代码拷贝至项目`utils/utils.js`中,并在`js`文件中声明使用 [^1]。虽然引用中未给出具体转换代码,但一般可以使用`Date.parse()`方法将日期字符串转换时间戳,示例代码如下: ```javascript var dateStr = '2024-01-01 12:00:00'; var timestamp = Date.parse(dateStr); console.log(timestamp); ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值