微信小程序時間戳與日期格式的轉換方法
1. 微信小程序 時間戳與日期格式的轉換
微信小程序中的時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù)。例如現(xiàn)在北京時間2015-12-31 17:00:00的時間戳是1451552400,就是指從北京時間1970-01-01 08:00:00到2015-12-31 17:00:00已經(jīng)過去了1451552400秒。
在編程語言中使用時間戳的好處:
(1)時間戳沒有時區(qū)概念,比如如果用’2015-12-31 17:00:00’這么一個字符串表示時間的話,北京時間和美國時間是不一樣的,但是用時間戳1451552400來表示的話,那就是一定是唯一的時間,不會有歧義;
(2)時間戳在編程語言中一般是長整形數(shù)據(jù)類型,無論何種編程語言都能認識時間戳,如果用字符串表示時間,還需要轉換。
1.1. 獲取昨天,今天,明天的xx-xx-xx格式的日期
微信小程序picker 日期選擇中經(jīng)常要用到 年-月-日 格式的時間,寫下來方便以后使用。
//時間的格式為 xxxx-xx-xx 即 年-月-日, 小程序picker中經(jīng)??梢杂玫? //昨天的時間 var day1 = new Date(); day1.setTime(day1.getTime()-24*60*60*1000); var s1 = day1.getFullYear()+"-" + (day1.getMonth()+1) + "-" + day1.getDate(); //今天的時間 var day2 = new Date(); day2.setTime(day2.getTime()); var s2 = day2.getFullYear()+"-" + (day2.getMonth()+1) + "-" + day2.getDate(); //明天的時間 var day3 = new Date(); day3.setTime(day3.getTime()+24*60*60*1000); var s3 = day3.getFullYear()+"-" + (day3.getMonth()+1) + "-" + day3.getDate();
1.2. 獲取前一天時間
微信小程序獲取前一天時間。

that.getDeadline("2025-04-16 17:35:15");
getDeadline: function (time) {
var date1 = new Date(time + ":000");
var timeStamp1 = date1.getTime();
var date2 = new Date(timeStamp1);
date2.setTime(date1.getTime() - 24 * 60 * 60 * 1000);
var year = date2.getFullYear()
var month = date2.getMonth() + 1
if (month < 10) {
month = "0" + month
}
var day = date2.getDate()
if (day < 10) {
day = "0" + day
}
var hour = date2.getHours()
if (hour < 10) {
hour = "0" + hour
}
var minite = date2.getMinutes();
if (minite < 10) {
minite = "0" + minite
}
var second = date2.getSeconds();
if (second < 10) {
second = "0" + second
}
var time2 = year + "-" + month + "-" + day + ' ' + hour + ":" + minite + ":" + second;
return time2;
},1.3. 時間轉換為時間戳
(1)方法一
var date = new Date("2022-12-04 17:15:53:555");
// 有三種方式獲取
var time1 = date.getTime();
var time2 = date.valueOf();
var time3 = Date.parse(date);
console.log(time1); //1670145353555
console.log(time2); //1670145353555
console.log(time3); //1670145353000(2)方法二
var time = '2020-04-01 00:00:00';
var repTime = time.replace(/-/g, '/');//用正則主要是把“2020-04-01 00:00:00'”轉換成“2020/04/01 00:00:00'”兼容ios
console.log("返回時間:" + repTime);
var timeTamp = Date.parse(repTime);
console.log("返回時間戳:" + timeTamp)1.4. 訂單倒計時實現(xiàn)
1.4.1. 實現(xiàn)思路:
求出發(fā)起拼團時間與拼團結束時間的時間差
再將時間差格式化得到我們想要的格式如:
時間每秒遞減使用了 setTimeout(this.setTimeCount,1000);這個函數(shù),讓這個函數(shù)每隔一秒執(zhí)行一次。
1.4.2. 實現(xiàn)中的難點
若是要實現(xiàn)單個倒計時如60s發(fā)送驗證碼倒不是很難,難的是多條倒計時。
不同的訂單下單時間是不一樣的時間差time也就不一樣,所以當初在這卡了很久,后來想通一切才覺得原來如此。
1.4.3. 實現(xiàn)方法
后臺計算出時間前端直接獲取時間差,當時為了不影響項目進度我們用的就是這個方法,真是苦了那個些后臺的兄弟還得遷就我這個菜鳥。
獲取這個時間差time后我們就可以將它處理后放入數(shù)組循環(huán)。這樣做的好處是前端不用將time作為一個屬性添加到原數(shù)組中。
1.4.4. 示例代碼
(1)timeCount.wxml
<view class="TimeSeond">{{timeSecond}}</view>(2)timeCount.js
Page({
data: {
timeSecond: '', //倒計時
},
onLoad() {
this.timeCountdown();
},
timeCountdown() {
var that = this
var timeStampCur = new Date().getTime();
//30分鐘前
var timeStampBefore = timeStampCur - 30 * 60 * 1000;
if (timeStampCur > timeStampBefore) {
var timeStampInterval = timeStampCur - timeStampBefore
var hours = parseInt((timeStampInterval % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
var minutes = parseInt((timeStampInterval % (60 * 60 * 1000)) / (60 * 1000));
var seconds = parseInt((timeStampInterval % (60 * 1000)) / 1000);
var timeNum = setInterval(function () {
timeStampInterval = timeStampInterval - 1000
hours = parseInt((timeStampInterval % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
minutes = parseInt((timeStampInterval % (60 * 60 * 1000)) / (60 * 1000));
seconds = parseInt((timeStampInterval % (60 * 1000)) / 1000);
if (timeStampInterval < 1) {
that.setData({
timeSecond: '00:00:00'
})
clearInterval(timeNum)
return false
}
hours = hours > 9 ? hours : '0' + hours
minutes = minutes > 9 ? minutes : '0' + minutes
seconds = seconds > 9 ? seconds : '0' + seconds
that.setData({
timeSecond: hours + ':' + minutes + ':' + seconds
})
}, 1000)
} else {
that.setData({
timeSecond: '00:00:00'
})
}
},
})
到此這篇關于微信小程序時間戳與日期格式的轉換的文章就介紹到這了,更多相關小程序時間戳與日期格式轉換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解JavaScript中Generator函數(shù)的使用
Generator 是 ES6 新增的一種函數(shù)類型,這篇文章主要來和大家詳細聊聊Generator函數(shù)的具體用法,文中的示例代碼講解詳細,感興趣的可以了解一下2023-06-06
JavaScript設計模式之工廠模式和抽象工廠模式定義與用法分析
這篇文章主要介紹了JavaScript設計模式之工廠模式和抽象工廠模式,結合實例形式分析了工廠模式的功能、定義、相關問題解決方法,并分析抽象工廠模式與工廠模式的不同之處,需要的朋友可以參考下2018-07-07
原生js操作checkbox用document.getElementById實現(xiàn)
js操作checkbox本人建議用document.getElementById(checkbox_id).checked不推薦使用jquery操作checkbox,感興趣的朋友不要錯過2013-10-10
如何在Mozilla Gecko 用Javascript加載XSL
如何在Mozilla Gecko 用Javascript加載XSL...2007-01-01
uniapp中canvas繪制圖片內(nèi)容空白報錯的原因及解決
最近有個需求就是要用canvas畫個分享的海報,所以這里總結下,這篇文章主要給大家介紹了關于uniapp中canvas繪制圖片內(nèi)容空白報錯的原因及解決方法,需要的朋友可以參考下2023-09-09

