在小程序的開發中,有時候須要知道服務器的時間,好比打卡之類的業務需求(使用本地時間存在被用戶篡改時間的風險)。而若是使用的是小程序的雲開發,就能夠寫一個雲函數,經過這個雲函數返回時間給小程序使用,但云函數中的時間卻存在一些問題。數據庫
先在雲函數中建立一個 Date 對象,而後將這個對象分別打印 log 和保存到數據庫,這時發現,同一個 Date 對象,打印 log 顯示的時間和保存到數據庫的時間倒是不同的。小程序
var date = new Date(); console.log("服務器時間: ", date) return db.collection("date").add({ data: { date: date } })
能夠看到,打印 log 顯示的是時區 0 的時間,保存到數據庫顯示的是時區 8 的時間,這種不統一就比較坑。因此爲了不一些問題,最好使用時間戳,無論是保存到數據庫,仍是返回給小程序,同一個 Date 對象的時間戳都是一致的。服務器
var date = new Date().getTime(); console.log("服務器時間: ", date) return db.collection("date").add({ data: { date: date } })
而後咱們在真正用到時間的時候,再對這個時間戳進行轉換便可。在建立 Date 對象的時候,將時間戳做爲參數傳進去就能夠獲得時間。函數
var timestamp = 1545489839304; var date = new Date(timestamp);
經過上面的時間戳,能夠獲得時間爲 Sat Dec 22 2018 22:43:59 GMT+0800 (CST)。3d