什么是微信小程序中的格式化时间?
在微信小程序中,开发人员需要对时间进行格式化处理以便更好地展示给用户。格式化时间是将一个时间戳转换成自己想要的时间字符串的过程。
在 JavaScript 中,可以使用 Date()
对象来获取当前时间,但是该对象获取的时间格式并不是我们需要的,因此需要进行格式化处理。
微信小程序中的格式化时间实现原理
格式化时间的实现原理主要是基于 JavaScript 中 Date()
对象的方法。
首先,需要对传入的时间戳进行实例化,并调用 Date()
方法来获取相应的日期对象:
let date = new Date(timestamp);
然后,可以使用 Date 对象的多种方法来获取不同格式的时间,如:
let year = date.getFullYear(); //获取年份
let month = date.getMonth() + 1; //获取月份(需要加1)
let day = date.getDate(); //获取日份
let hour = date.getHours(); //获取小时
let minute = date.getMinutes(); //获取分钟
let second = date.getSeconds(); //获取秒钟
let weekday = date.getDay(); //获取星期几(0-6,0代表周日)
最后,将获取到的时间格式组合在一起,即可得到需要的时间字符串:
let timeStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
微信小程序中的格式化时间代码实现
1. 获取当前时间戳(单位:毫秒)
let timestamp = Date.now();
2. 格式化时间戳
以下是一个示例代码,将一个时间戳(单位:秒)格式化成“yyyy-mm-dd hh:mm:ss”的时间字符串:
const formatTime = timestamp => {
// 转换成毫秒
timestamp = timestamp * 1000;
// 初始化日期对象
let date = new Date(timestamp);
// 获取年、月、日、小时、分钟、秒,注意月份需要加1
let year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds();
// 组合成时间字符串
let timeStr = [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':');
return timeStr;
}
// 格式化数字(格式化为2位的字符串)
const formatNumber = n => {
n = n.toString();
return n[1] ? n : '0' + n;
}
通过调用 formatTime()
方法,即可将时间戳格式化为需要的时间字符串,示例如下:
let timestamp = 1612011399;
let timeStr = formatTime(timestamp);
console.log(timeStr); //输出结果为:2021-01-30 22:16:39
3. 格式化时间戳(带星期几)
以下是一个示例代码,将一个时间戳(单位:秒)格式化成“yyyy-mm-dd 周x hh:mm:ss”的时间字符串,其中“x”表示星期几:
const formatTimeWithWeekday = timestamp => {
// 转换成毫秒
timestamp = timestamp * 1000;
// 初始化日期对象
let date = new Date(timestamp);
// 星期数组
let weekdays = ['日', '一', '二', '三', '四', '五', '六'];
// 获取年、月、日、小时、分钟、秒、星期几,注意月份需要加1
let year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds(),
weekday = date.getDay();
// 组合成时间字符串
let timeStr = [year, month, day].map(formatNumber).join('-') + ' 周' + weekdays[weekday] + ' ' + [hour, minute, second].map(formatNumber).join(':');
return timeStr;
}
通过调用 formatTimeWithWeekday()
方法,即可将时间戳格式化为带星期几的时间字符串,示例如下:
let timestamp = 1612011399;
let timeStr = formatTimeWithWeekday(timestamp);
console.log(timeStr); //输出结果为:2021-01-30 周六 22:16:39
总结
格式化时间在微信小程序中是一项非常常见的需求,可以通过 Date()
对象的多种方法来获取不同格式的时间,并组合成需要的时间字符串。开发者可以根据自己的需求,对格式化时间的代码进行修改扩展。
文章中的示例代码已经演示了如何将一个时间戳格式化为常见的时间字符串格式,并且还提供了一种带星期几的格式化方法供读者参考。开发者在实际开发中可以通过简单的修改,轻松地实现自己的需求。