⼩程序实现⽇期格式化和倒计时本⽂实例为⼤家分享了⼩程序实现⽇期格式化和倒计时的具体代码,供⼤家参考,具体内容如下
⾸先看看⽇期怎么格式化
第⼀种:
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": Month() + 1, //⽉份
"d+": Date(), //⽇
"h+": Hours(), //⼩时
"m+": Minutes(), //分
"s+": Seconds(), //秒
"q+": Math.floor((Month() + 3) / 3), //季度
"S": Milliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = place(RegExp.$1, (FullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
unix时间戳转换日期格式if (new RegExp("(" + k + ")").test(fmt)) fmt = place(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 = Hours();
var _minute = Minutes();
var _second = Seconds();
var _year = FullYear()
var _month = Month();
var _date = Date();
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 = FullYear() + '-';
var M = (Month()+1 < 10 ? '0'+(Month()+1) : Month()+1) + '-';
var D = Date() + ' ';
var h = Hours() + ':';
var m = Minutes() + ':';
var s = Seconds();
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 = Time();
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 + '秒'
}
}
为⼤家推荐现在关注度⽐较⾼的⼩程序教程⼀篇:⼩编为⼤家精⼼整理的,希望喜欢。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论