時區:
時間戳(格林威治時間):
需要注意如果是moment物件格式不能直接操作會修改原始物件的值,遇到最多的地方是時間選擇元件,disableddate傳入函式時需要注意使用clone()
// 已知東八區 '2019-03-12 00:00:00' 時間戳 1552320000 計算東九區的日期
const time_zone = 9;
moment(1552320000 * 1000).subtract(moment().utcoffset() / 60 - time_zone,'hours').format('yyyy-mm-dd hh:mm:ss');
// 2019-03-12 01:00:00 (即時區差x1h)
對應時區的今天不一定是今天00:00:00的時間戳減去時區偏移時間
const time_zone = -11;
const diff = moment().utcoffset() / 60 - time_zone;
moment()
.subtract((24 + (moment().hour() - diff)) % 24, 'hours')
.startof('hour'); // 算出偏移時區
moment的diff是取整演算法,譬如當前時間2019-03-12 01:00:00,那麼diff 2019-03-13 00:00:00 就會得到0,可以第二個引數傳入true,獲取小數字,再用天花板函式
// 和早23個小時diff取天
const today = moment();
const yesterday = moment().subtrct(23,'hours');
today.diff(yesterday,'days') // 0 ???
today.diff(yesterday,'days',true) // 0.9583333333333334
math.ceil(today.diff(yesterday,'days')) // 1 那如果是小於0 math.floor
moment日期處理庫
moment文件 前天在實現日期選擇器引用moment日期處理庫,覺得有必要將常用的方法記錄下來,特此一記。首發一文 2018 10 27 moment format yyyy mm dd 獲取年 月 日 時 分 秒 var year moment year var month moment mon...
moment日期時間處理
比較全面的講解 前面在專案中遇到乙個關於獲取月初和月底時間的問題 給你乙個毫秒數,需要處理成對應的當月第一天0點和當月最後一天23點59分59秒。比如毫秒數轉過來是2020年5月9日13時45分17秒,需要得到2020年5月1日0點0分0秒,以及2020年5月31日23時59分59秒。如下,val是...
系統時區處理
隨著雲計算時代的到來,應用的使用者可能來自世界各地,如果依然固執的認為時間都是北京時間,就有些固步自封了。時區的問題非常複雜,不時會讓人陷入迷惘之中。下面我為介紹一下我專案中的經驗,希望拋磚引玉,讓我們且行且思考。很久很久以前,一般企業應用都是這樣假定的 客戶端 使用者 應用伺服器,db伺服器都位於...