微信小程序如何实现日期格式化及倒计时功能?

更新于
2026-10-03 04:29:46
1阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1392个文字,预计阅读时间需要6分钟。

本例展示了如何利用微信小程序实现日期格式化和倒计时功能。以下代码示例包含了日期格式化和倒计时的具体实现,供大家参考:

javascriptDate.prototype.Format=function(fmt){ // author: meizz var o={ M+ : this.getMonth()+1, // 月份 d+ : this.getDate(), // 日 h+ : this.getHours(), // 小时 m+ : this.getMinutes(), // 分 s+ : this.getSeconds(), // 秒 q+ : Math.floor((this.getMonth()+3)/3), // 季度 S : this.getMilliseconds() // 毫秒 }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+).substr(4 - RegExp.$1.length)); } for(var k in o){ if(new RegExp((+ k +)).test(fmt)){ fmt=fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : ((00+ o[k]).substr((+ o[k]).length))); } } return fmt;}

首先,定义了一个`Date.prototype.Format`函数,用于将日期格式化为指定的格式。该函数使用正则表达式匹配格式字符串中的占位符,并将其替换为相应的日期时间值。

使用该函数的示例代码如下:

javascript// 获取当前日期并格式化为YYYY-MM-DD HH:mm:ss格式var now=new Date();var formattedDate=now.Format(yyyy-MM-dd HH:mm:ss);console.log(formattedDate);

// 倒计时功能function countDown(endTime) { var now=new Date(); var endTime=new Date(endTime); var leftTime=endTime - now; if(leftTime > 0) { var d=Math.floor(leftTime / 1000 / 60 / 60 / 24); var h=Math.floor((leftTime / 1000 / 60 / 60) % 24); var m=Math.floor((leftTime / 1000 / 60) % 60); var s=Math.floor((leftTime / 1000) % 60); console.log(d + 天 + h + 时 + m + 分 + s + 秒); } else { console.log(倒计时结束); }}

// 调用倒计时函数countDown(2023-01-01 00:00:00);

以上代码首先定义了一个`countDown`函数,用于计算距离指定时间的倒计时。该函数通过计算当前时间与指定时间的差值,获取剩余的天、小时、分钟和秒,并输出倒计时信息。最后,调用`countDown`函数,传入一个目标时间(例如:2023-01-01 00:00:00),以实现倒计时功能。

本文实例为大家分享了微信小程序实现日期格式化和倒计时的具体代码,供大家参考,具体内容如下

首先看看日期怎么格式化

第一种:

Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }

然后是调用this.value1=new Date().Format("yyyy-MM-dd HH:MM:SS")

第二种

1.中国标准时间格式化:

formatDateTime:function(theDate) { var _hour = theDate.getHours(); var _minute = theDate.getMinutes(); var _second = theDate.getSeconds(); var _year = theDate.getFullYear() var _month = theDate.getMonth(); var _date = theDate.getDate(); if (_hour < 10) { _hour ="0" + _hour } if (_minute < 10) { _minute = "0" + _minute } if (_second < 10) { _second = "0" + _second } _month = _month + 1 if (_month < 10) { _month = "0" + _month; } if (_date < 10) { _date ="0" + _date } var time= _year + "-" + _month + "-" + _date + " " + _hour + ":" + _minute + ":" + _second; // var time = new Date(); // var formatTime = formatDateTime(time); // 返回结果: // Tue Jun 06 2017 15:31:09 GMT+ 0800(中国标准时间) // 2017 - 06 - 06 15:31:09 //clock为在data中定义的空变量,存放转化好的日期 this.setData({ clock: time }) },

2、把格式化时间转换为毫秒数

var formatTimeS = new Date('2017-06-06 15:31:09').getTime();

返回结果:1496734269900

3、把毫秒数转换为标准时间

var formatTimeS = new Date(1496734269900);

返回结果:Tue Jun 06 201715:31:09 GMT+0800(中国标准时间)

二、实现倒计时

//倒计时:其中time_canshu为传入的毫秒数 date_format: function (time_canshu) { // let formatTime1 = new Date().getTime(); // let formatTime2 = new Date('2018-04-24 15:31:09').getTime(); // let formatTimeS = new Date(formatTime2 - formatTime1); var none = '00:00:00'; if (formatTimeS<=0){ this.setData({ clock: none })} else { // 秒数 letsecond = Math.floor(time_canshu / 1000); // 小时位 lethr = Math.floor(second / 3600); // 分钟位 letmin = Math.floor((second - hr * 3600) /60); // 秒位 letsec = second % 60;// equal to => var sec = second % 60; if (hr <= 9) hr ='0' + hr; if (min <= 9) min ='0' + min; if (sec <= 9) sec ='0' + sec; lettime = hr + ":" + min + ":" + sec + " "; this.setData({ clock: time }) } },

时间戳转化为日期格式函数

//时间戳转化为日期格式 function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; var D = date.getDate() + ' '; var h = date.getHours() + ':'; var m = date.getMinutes() + ':'; var s = date.getSeconds(); return Y+M+D+h+m+s; } timestampToTime(1403058804); console.log(timestampToTime(1403058804));//2014-06-18 10:33:24 //日期格式转化为时间戳 var date = new Date('2014-04-23 18:55:49:123'); // 有三种方式获取 var time1 = date.getTime(); var time2 = date.valueOf(); var time3 = Date.parse(date); console.log(time1);//1398250549123 console.log(time2);//1398250549123 console.log(time3);//1398250549000 //以上三种获取方式的区别:第一、第二种:会精确到毫秒第三种:只能精确到秒,毫秒用000替代以上三个输出结果可观察其区别注意:获取到的时间戳除以1000就可获得Unix时间戳,就可传值给后台得到。

分/秒转化为天时分

secondToDate (result) { if (result > 60) { let d = parseInt(Math.floor(result / 86400)) let h = d > 0? Math.floor((result - d * 86400) / 3600): Math.floor(result / 3600); let m = h > 0? Math.floor((result - d * 86400 - h * 3600) / 60): Math.floor(result / 60); return d + '天:' + h + '时:' + m + '分' } else { return result + '秒' } }

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。

本文共计1392个文字,预计阅读时间需要6分钟。

本例展示了如何利用微信小程序实现日期格式化和倒计时功能。以下代码示例包含了日期格式化和倒计时的具体实现,供大家参考:

javascriptDate.prototype.Format=function(fmt){ // author: meizz var o={ M+ : this.getMonth()+1, // 月份 d+ : this.getDate(), // 日 h+ : this.getHours(), // 小时 m+ : this.getMinutes(), // 分 s+ : this.getSeconds(), // 秒 q+ : Math.floor((this.getMonth()+3)/3), // 季度 S : this.getMilliseconds() // 毫秒 }; if(/(y+)/.test(fmt)){ fmt=fmt.replace(RegExp.$1, (this.getFullYear()+).substr(4 - RegExp.$1.length)); } for(var k in o){ if(new RegExp((+ k +)).test(fmt)){ fmt=fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : ((00+ o[k]).substr((+ o[k]).length))); } } return fmt;}

首先,定义了一个`Date.prototype.Format`函数,用于将日期格式化为指定的格式。该函数使用正则表达式匹配格式字符串中的占位符,并将其替换为相应的日期时间值。

使用该函数的示例代码如下:

javascript// 获取当前日期并格式化为YYYY-MM-DD HH:mm:ss格式var now=new Date();var formattedDate=now.Format(yyyy-MM-dd HH:mm:ss);console.log(formattedDate);

// 倒计时功能function countDown(endTime) { var now=new Date(); var endTime=new Date(endTime); var leftTime=endTime - now; if(leftTime > 0) { var d=Math.floor(leftTime / 1000 / 60 / 60 / 24); var h=Math.floor((leftTime / 1000 / 60 / 60) % 24); var m=Math.floor((leftTime / 1000 / 60) % 60); var s=Math.floor((leftTime / 1000) % 60); console.log(d + 天 + h + 时 + m + 分 + s + 秒); } else { console.log(倒计时结束); }}

// 调用倒计时函数countDown(2023-01-01 00:00:00);

以上代码首先定义了一个`countDown`函数,用于计算距离指定时间的倒计时。该函数通过计算当前时间与指定时间的差值,获取剩余的天、小时、分钟和秒,并输出倒计时信息。最后,调用`countDown`函数,传入一个目标时间(例如:2023-01-01 00:00:00),以实现倒计时功能。

本文实例为大家分享了微信小程序实现日期格式化和倒计时的具体代码,供大家参考,具体内容如下

首先看看日期怎么格式化

第一种:

Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }

然后是调用this.value1=new Date().Format("yyyy-MM-dd HH:MM:SS")

第二种

1.中国标准时间格式化:

formatDateTime:function(theDate) { var _hour = theDate.getHours(); var _minute = theDate.getMinutes(); var _second = theDate.getSeconds(); var _year = theDate.getFullYear() var _month = theDate.getMonth(); var _date = theDate.getDate(); if (_hour < 10) { _hour ="0" + _hour } if (_minute < 10) { _minute = "0" + _minute } if (_second < 10) { _second = "0" + _second } _month = _month + 1 if (_month < 10) { _month = "0" + _month; } if (_date < 10) { _date ="0" + _date } var time= _year + "-" + _month + "-" + _date + " " + _hour + ":" + _minute + ":" + _second; // var time = new Date(); // var formatTime = formatDateTime(time); // 返回结果: // Tue Jun 06 2017 15:31:09 GMT+ 0800(中国标准时间) // 2017 - 06 - 06 15:31:09 //clock为在data中定义的空变量,存放转化好的日期 this.setData({ clock: time }) },

2、把格式化时间转换为毫秒数

var formatTimeS = new Date('2017-06-06 15:31:09').getTime();

返回结果:1496734269900

3、把毫秒数转换为标准时间

var formatTimeS = new Date(1496734269900);

返回结果:Tue Jun 06 201715:31:09 GMT+0800(中国标准时间)

二、实现倒计时

//倒计时:其中time_canshu为传入的毫秒数 date_format: function (time_canshu) { // let formatTime1 = new Date().getTime(); // let formatTime2 = new Date('2018-04-24 15:31:09').getTime(); // let formatTimeS = new Date(formatTime2 - formatTime1); var none = '00:00:00'; if (formatTimeS<=0){ this.setData({ clock: none })} else { // 秒数 letsecond = Math.floor(time_canshu / 1000); // 小时位 lethr = Math.floor(second / 3600); // 分钟位 letmin = Math.floor((second - hr * 3600) /60); // 秒位 letsec = second % 60;// equal to => var sec = second % 60; if (hr <= 9) hr ='0' + hr; if (min <= 9) min ='0' + min; if (sec <= 9) sec ='0' + sec; lettime = hr + ":" + min + ":" + sec + " "; this.setData({ clock: time }) } },

时间戳转化为日期格式函数

//时间戳转化为日期格式 function timestampToTime(timestamp) { var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + '-'; var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'; var D = date.getDate() + ' '; var h = date.getHours() + ':'; var m = date.getMinutes() + ':'; var s = date.getSeconds(); return Y+M+D+h+m+s; } timestampToTime(1403058804); console.log(timestampToTime(1403058804));//2014-06-18 10:33:24 //日期格式转化为时间戳 var date = new Date('2014-04-23 18:55:49:123'); // 有三种方式获取 var time1 = date.getTime(); var time2 = date.valueOf(); var time3 = Date.parse(date); console.log(time1);//1398250549123 console.log(time2);//1398250549123 console.log(time3);//1398250549000 //以上三种获取方式的区别:第一、第二种:会精确到毫秒第三种:只能精确到秒,毫秒用000替代以上三个输出结果可观察其区别注意:获取到的时间戳除以1000就可获得Unix时间戳,就可传值给后台得到。

分/秒转化为天时分

secondToDate (result) { if (result > 60) { let d = parseInt(Math.floor(result / 86400)) let h = d > 0? Math.floor((result - d * 86400) / 3600): Math.floor(result / 3600); let m = h > 0? Math.floor((result - d * 86400 - h * 3600) / 60): Math.floor(result / 60); return d + '天:' + h + '时:' + m + '分' } else { return result + '秒' } }

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自由互联。