介绍
微信小程序实例:实现系统时间、时间戳时间以及时间戳加减的获取代码。在小程序中,获取时间可以说是非常常见的操作,开发者可以方便地通过微信小程序的 API 来获取。这篇文章将为大家介绍如何获取系统时间、时间戳时间以及时间戳加减的方法。
系统时间的获取
原理
在微信小程序中,我们可以使用 Date 对象来获取系统时间。Date 对象表示时间和日期的值,但它并不是数字,而是一个对象。我们可以使用 Date 对象的 getDate、getDay、getFullYear 等方法来获取系统时间的年、月、日等信息。
// 获取系统时间
var date = new Date();
// 获取年份
var year = date.getFullYear();
// 获取月份(注意,月份返回的是0-11的数字,所以需要加一)
var month = date.getMonth() + 1;
// 获取日期
var day = date.getDate();
// 获取星期(返回0-6的数字,0表示星期天,1表示星期一,以此类推)
var week = date.getDay();
// 获取小时(24小时制)
var hour = date.getHours();
// 获取分钟
var minute = date.getMinutes();
// 获取秒
var second = date.getSeconds();
示例
下面的代码演示了如何在小程序中获取系统时间,并将其显示在页面上:
// pages/index/index.js
Page({
data: {
time: ''
},
onLoad: function () {
// 获取系统时间
var date = new Date();
var year = date.getFullYear();
var month = formatNumber(date.getMonth() + 1);
var day = formatNumber(date.getDate());
var hour = formatNumber(date.getHours());
var minute = formatNumber(date.getMinutes());
var second = formatNumber(date.getSeconds());
// 将时间格式化为 YYYY-MM-DD HH:MM:SS 的形式
this.setData({
time: year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
})
}
})
// 将数字格式化为两位数
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
在页面中添加一个文本框,将时间绑定到该文本框:
<view>当前时间:{{time}}</view>
时间戳时间的获取
原理
时间戳(timestamp)指的是从格林威治时间1970年01月01日00时00分00秒起到现在的总秒数,是一个长整数。在小程序中,我们可以使用 Date 对象的 getTime() 方法来获取当前时间的时间戳。
// 获取当前时间的时间戳
var timestamp = Date.now() / 1000;
注意这里除以1000,是因为 getTime() 方法返回的是以毫秒为单位的时间戳。
示例
下面的代码演示了如何在小程序中获取时间戳,并将其显示在页面上:
// pages/index/index.js
Page({
data: {
timestamp: ''
},
onLoad: function () {
// 获取当前时间的时间戳
var timestamp = Date.now() / 1000;
// 将时间戳转换为日期格式
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = formatNumber(date.getMonth() + 1);
var day = formatNumber(date.getDate());
var hour = formatNumber(date.getHours());
var minute = formatNumber(date.getMinutes());
var second = formatNumber(date.getSeconds());
// 将时间格式化为 YYYY-MM-DD HH:MM:SS 的形式
this.setData({
timestamp: year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
})
}
})
// 将数字格式化为两位数
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
在页面中添加一个文本框,将时间戳绑定到该文本框:
<view>当前时间戳:{{timestamp}}</view>
时间戳加减的获取
原理
在小程序中,我们可以通过 Date 对象的 getTime() 方法以及一些简单的数学运算来进行时间戳加减。下面是一些常见的时间戳加减用法:
var timestamp = Date.now() / 1000; // 获取当前时间的时间戳
var nextDayTimestamp = timestamp + 24 * 60 * 60; // 获取下一天此时的时间戳
var fiveMinuteLaterTimestamp = timestamp + 5 * 60; // 获取五分钟后的时间戳
var oneHourAgoTimestamp = timestamp - 60 * 60; // 获取一小时前的时间戳
示例
下面的代码演示了如何在小程序中获取当前时间,并分别获取明天此时的时间、五分钟后的时间以及一小时前的时间:
// pages/index/index.js
Page({
data: {
today: '',
tomorrow: '',
fiveMinuteLater: '',
oneHourAgo: ''
},
onLoad: function () {
var timestamp = Date.now() / 1000;
// 获取今天的日期
var date = new Date(timestamp * 1000);
var year = date.getFullYear();
var month = formatNumber(date.getMonth() + 1);
var day = formatNumber(date.getDate());
var hour = formatNumber(date.getHours());
var minute = formatNumber(date.getMinutes());
var second = formatNumber(date.getSeconds());
this.setData({
today: year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second
})
// 获取明天此时的时间
var tomorrowTimestamp = timestamp + 24 * 60 * 60;
var tomorrowDate = new Date(tomorrowTimestamp * 1000);
var tomorrowYear = tomorrowDate.getFullYear();
var tomorrowMonth = formatNumber(tomorrowDate.getMonth() + 1);
var tomorrowDay = formatNumber(tomorrowDate.getDate());
var tomorrowHour = formatNumber(tomorrowDate.getHours());
var tomorrowMinute = formatNumber(tomorrowDate.getMinutes());
var tomorrowSecond = formatNumber(tomorrowDate.getSeconds());
this.setData({
tomorrow: tomorrowYear + '-' + tomorrowMonth + '-' + tomorrowDay + ' ' + tomorrowHour + ':' + tomorrowMinute + ':' + tomorrowSecond
})
// 获取五分钟后的时间
var fiveMinuteLaterTimestamp = timestamp + 5 * 60;
var fiveMinuteLaterDate = new Date(fiveMinuteLaterTimestamp * 1000);
var fiveMinuteLaterYear = fiveMinuteLaterDate.getFullYear();
var fiveMinuteLaterMonth = formatNumber(fiveMinuteLaterDate.getMonth() + 1);
var fiveMinuteLaterDay = formatNumber(fiveMinuteLaterDate.getDate());
var fiveMinuteLaterHour = formatNumber(fiveMinuteLaterDate.getHours());
var fiveMinuteLaterMinute = formatNumber(fiveMinuteLaterDate.getMinutes());
var fiveMinuteLaterSecond = formatNumber(fiveMinuteLaterDate.getSeconds());
this.setData({
fiveMinuteLater: fiveMinuteLaterYear + '-' + fiveMinuteLaterMonth + '-' + fiveMinuteLaterDay + ' ' + fiveMinuteLaterHour + ':' + fiveMinuteLaterMinute + ':' + fiveMinuteLaterSecond
})
// 获取一小时前的时间
var oneHourAgoTimestamp = timestamp - 60 * 60;
var oneHourAgoDate = new Date(oneHourAgoTimestamp * 1000);
var oneHourAgoYear = oneHourAgoDate.getFullYear();
var oneHourAgoMonth = formatNumber(oneHourAgoDate.getMonth() + 1);
var oneHourAgoDay = formatNumber(oneHourAgoDate.getDate());
var oneHourAgoHour = formatNumber(oneHourAgoDate.getHours());
var oneHourAgoMinute = formatNumber(oneHourAgoDate.getMinutes());
var oneHourAgoSecond = formatNumber(oneHourAgoDate.getSeconds());
this.setData({
oneHourAgo: oneHourAgoYear + '-' + oneHourAgoMonth + '-' + oneHourAgoDay + ' ' + oneHourAgoHour + ':' + oneHourAgoMinute + ':' + oneHourAgoSecond
})
}
})
// 将数字格式化为两位数
function formatNumber(n) {
n = n.toString()
return n[1] ? n : '0' + n
}
在页面中添加四个文本框,分别将今天的时间、明天此时的时间、五分钟后的时间和一小时前的时间绑定到这四个文本框上:
<view>今天的时间:{{today}}</view>
<view>明天此时的时间:{{tomorrow}}</view>
<view>五分钟后的时间:{{fiveMinuteLater}}</view>
<view>一小时前的时间:{{oneHourAgo}}</view>
总结
本篇文章介绍了微信小程序中获取系统时间、时间戳时间以及时间戳加减的方法。通过本文的学习,我们可以更加方便地在小程序中进行时间相关的操作。