微信小程序二十四节气倒计时功能代码实现
时间: 2023-09-22 19:06:04 浏览: 252
微信小程序-二十四节气小程序源码及项目截图
这里提供一种实现方式,使用了小程序自带的计时器功能和时间戳的转换,代码如下:
1. 在页面的 js 文件中定义一个倒计时函数:
```
// 倒计时函数,传入节气名称和日期时间戳
countdown: function (name, timestamp) {
var that = this;
// 获取当前时间戳
var now = Date.now();
// 计算距离下一个节气的时间差,单位为毫秒
var diff = timestamp - now;
// 如果时间差小于 0,说明当前已经过了该节气,需要重新计算下一个节气的时间
if (diff < 0) {
diff += 24 * 60 * 60 * 1000 * 15.21;
}
// 将毫秒转换为天、小时、分钟和秒
var days = Math.floor(diff / (24 * 60 * 60 * 1000));
var hours = Math.floor((diff % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
var minutes = Math.floor((diff % (60 * 60 * 1000)) / (60 * 1000));
var seconds = Math.floor((diff % (60 * 1000)) / 1000);
// 将倒计时更新到页面数据中
that.setData({
[name]: days + '天' + hours + '小时' + minutes + '分钟' + seconds + '秒'
});
// 每隔一秒钟更新一次倒计时
setTimeout(function () {
that.countdown(name, timestamp);
}, 1000);
}
```
2. 在页面的 onShow 生命周期中调用倒计时函数,并传入节气名称和日期时间戳:
```
onShow: function () {
// 获取当前年份
var year = new Date().getFullYear();
// 获取二十四节气的日期时间戳
var jieqi = [
{ name: '立春', timestamp: new Date(year, 1, 4, 5, 28).getTime() },
{ name: '雨水', timestamp: new Date(year, 1, 19, 8, 57).getTime() },
// 省略其他节气
{ name: '大雪', timestamp: new Date(year, 11, 7, 22, 23).getTime() },
{ name: '冬至', timestamp: new Date(year, 11, 21, 15, 2).getTime() }
];
// 循环调用倒计时函数,传入节气名称和日期时间戳
for (var i = 0; i < jieqi.length; i++) {
this.countdown(jieqi[i].name, jieqi[i].timestamp);
}
}
```
3. 在页面中展示倒计时,例如:
```
<view>距离立春还有{{lichun}}</view>
<view>距离雨水还有{{yushui}}</view>
<!-- 省略其他节气 -->
<view>距离大雪还有{{daxue}}</view>
<view>距离冬至还有{{dongzhi}}</view>
```
这样就可以实现二十四节气的倒计时功能了。需要注意的是,时间戳的计算需要根据每年的具体日期来计算,因此需要根据实际情况进行调整。
阅读全文