微信小程序js-时间转换函数使用

本文详细介绍如何在小程序中使用默认的util.js文件进行日期格式化,包括标准时间和Unix时间戳的转换方法,为开发者提供实用的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建小程序项目时会默认生成一个utils/util.js文件,里面的内容主要如下:

const formatTime = date => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()

  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}

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

module.exports = {
  formatTime: formatTime
}

那么怎么使用这个函数呢?

首先在index.js导入util.js即var Util= require('../../utils/util.js'),如下图

然后在onLoad中使用以下代码:

  onLoad: function (options) {
    var date = new Date();
    console.log(Util.formatTime(date))
  },

这样就可以得到以下结果的输出:

然而很多时候,我们获得是unix的时间戳,比如说是“1547205501”,那么这个数值代表是什么时间呢?

首先我们在util.js中加入可以转化以上时间戳的函数,如下:

/** 
 * 时间戳转化为年 月 日 时 分 秒 
 * number: 传入时间戳 
 * format:返回格式,支持自定义,但参数必须与formateArr里保持一致 
*/
function formatTimeTwo(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;
}

加完之后如下:

然后在index.js中使用函数

  onLoad: function (options) {
    var date = new Date();
    console.log(Util.formatTime(date));
    var unixdate = 1547205501;
    console.log(Util.formatTimeTwo(unixdate, 'Y.M.D h:m:s'));
    console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h:m:s'));
    console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h:m'));
    console.log(Util.formatTimeTwo(unixdate, 'Y-M-D h'));
    console.log(Util.formatTimeTwo(unixdate, 'Y-M-D'));
    console.log(Util.formatTimeTwo(unixdate, 'Y-M'));
    console.log(Util.formatTimeTwo(unixdate, 'Y'));
  },

使用的输出结果如下:

 

2019-8-12日更新:

又看到以下一篇比较好的文章:

https://segmentfault.com/a/1190000012175622

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值