moment.js的使用

時間戳與時間相互轉換

時間:var time = new Date(); // Tue Aug 28 2018 09:16:06 GMT+0800 (中國標準時間)

時間戳:var timestamp = Date.parse(time); // 1535419062000 (Date.parse() 默認不取毫秒,即后三位毫秒為0)

moment轉時間:moment(time).valueOf(); // 1535419062126

moment轉時間戳:moment(timestamp).format(); // 2018-08-28T09:17:42+08:00

獲取當前時間往前的時間

moment().format("YYYY-MM-DD HH:mm:ss"); //當前時間

moment().subtract(7, "days").format("YYYY-MM-DD"); //當前時間的前7天時間

moment().subtract(1, "years").format("YYYY-MM-DD"); //當前時間的前1年時間

moment().subtract(3, "months").format("YYYY-MM-DD"); //當前時間的前3個月時間

moment().subtract(1, "weeks").format("YYYY-MM-DD"); //當前時間的前一個星期時間

獲取兩個日期/時間的時差

moment(endTime).diff(moment(startTime), 'years')

moment(endTime).diff(moment(startTime), 'months')

moment(endTime).diff(moment(startTime), 'days')    //  開始時間和結束時間的時間差,以“天”為單位;endTime和startTime都是毫秒數(shù)

moment(endTime).diff(moment(startTime),'minutes' )

moment(endTime).diff(moment(startTime), 'seconds')

根據(jù)當前時間判別本周一 至 周日 日期, 本月天數(shù)等

周一 至 周日 時間格式化轉化(Y --- 年 M --- 月 D--- 天

    var timeNow = new Date()// 當前時間
    var weekOfday = moment(timeNow).format('E'); // 計算今天是這周第幾天
 
    var nowDay = moment(timeNow).format('YYYY-MM-DD') // 當前日期
 
    var Monday = moment(timeNow).subtract(weekOfday - 1, 'days').format('YYYY-MM-DD'); // 周一日期
 
    var Tuesday = moment(timeNow).subtract(weekOfday - 2, 'days').format('YYYY-MM-DD'); // 周二日期
 
    var Wednesday = moment(timeNow).subtract(weekOfday - 3, 'days').format('YYYY-MM-DD'); // 周三日期
 
    var Thursday = moment(timeNow).subtract(weekOfday - 4, 'days').format('YYYY-MM-DD'); // 周四日期
 
    var Friday = moment(timeNow).subtract(weekOfday - 5, 'days').format('YYYY-MM-DD'); // 周五日期
 
    var Saturday = moment(timeNow).subtract(weekOfday - 6, 'days').format('YYYY-MM-DD'); // 周六日期
 
    var Sunday = moment(timeNow).add(7 - weekOfday, 'days').format('YYYY-MM-DD'); // 周日日期  

獲取當前月的總天數(shù)

moment().daysInMonth() 

官網(wǎng)摘錄:

日期格式化

moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 27日 2020, 4:47:31 下午
moment().format('dddd');                    // 星期三
moment().format("MMM Do YY");               // 5月 27日 20
moment().format('YYYY [escaped] YYYY');     // 2020 escaped 2020
moment().format();                          // 2020-05-27T16:47:31+08:00

相對時間

moment("20111031", "YYYYMMDD").fromNow(); // 9 年前
moment("20120620", "YYYYMMDD").fromNow(); // 8 年前
moment().startOf('day').fromNow();        // 17 小時前
moment().endOf('day').fromNow();          // 7 小時內
moment().startOf('hour').fromNow();       // 1 小時前

日歷時間

moment().subtract(10, 'days').calendar(); // 2020/05/17
moment().subtract(6, 'days').calendar();  // 上星期四16:47
moment().subtract(3, 'days').calendar();  // 上星期日16:47
moment().subtract(1, 'days').calendar();  // 昨天16:47
moment().calendar();                      // 今天16:47
moment().add(1, 'days').calendar();       // 明天16:47
moment().add(3, 'days').calendar();       // 下星期六16:47
moment().add(10, 'days').calendar();      // 2020/06/06

多語言支持

moment.locale();         // zh-cn
moment().format('LT');   // 16:47
moment().format('LTS');  // 16:47:31
moment().format('L');    // 2020/05/27
moment().format('l');    // 2020/5/27
moment().format('LL');   // 2020年5月27日
moment().format('ll');   // 2020年5月27日
moment().format('LLL');  // 2020年5月27日下午4點47分
moment().format('lll');  // 2020年5月27日 16:47
moment().format('LLLL'); // 2020年5月27日星期三下午4點47分
moment().format('llll'); // 2020年5月27日星期三 16:47

下面是兩個常用的鏈接地址,僅供參考

  1. moment.js地址: https://github.com/moment/moment
  2. 前端開源項目 CDN 加速服務,基本上所有的開源js都能在上面找到: https://www.bootcdn.cn/

new Date('2019-12-22').getTime()轉化成時分秒是北京時間8點的時間戳,在IOS上不識別中橫線分割的時間字符串問題,解決辦法:
new Date('2019/12/22 00:00:00').getTime() 是0點的時間戳


image.png

驚訝的發(fā)現(xiàn),-分割的字符串,被默認解析到了8點,而/分割的字符串,默認解析到了0點。這么說來,我之前有點多次一舉了,直接講-替換成/就可以了
最終,既然-分割的字符串會出問題,那我就講所有的-都換成/就好了,正好也可以借此解決IOS的兼容問題。

動手解決

/**
 * 將時間字符串轉換成date對象
 * @param dateStr
 * 時間字符串
 */
function getDate(dateStr){
    /* 若日期是使用-分割的,全部轉換成/
            因為只有日期時,js會將-分割的字符串基準時區(qū)設置為GMT,與當前時區(qū)相差8小時 */
    dateStr = dateStr.replace(/-/g, '/');
    return new Date(dateStr);
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容