時間格式化及操做(moment.js篇)

# moment.js

## 在vue裏面全局使用

main.jsvue

// 引入moment
import moment from 'moment'
import 'moment/locale/zh-cn'

// 使用中文時間
moment.locale('zh-cn')
Vue.prototype.$moment = moment

vue其餘地方調用的方法this

this.$moment().format('YYYY-MM-DD')

## 獲取當前時間

//返回當前時間moment()時間對象
moment();
moment(new Date());
//返回當前時間毫秒數
moment().valueOf() === Date.now() === new Date().getTime() === new Date().valueOf()

返回結果:2018-08-23T08:35:36.653 / 1534986255282prototype

## 格式化當前時間

let today = moment().format('YYYY-MM-DD');
moment(new Date()).format('YYYY/MM/DD HH:mm:ss');

//格式化時間戳(以秒爲單位)
moment().format('X')
//格式化時間戳(以毫秒爲單位)
moment().format('x') === moment().valueOf();

## 原生Date對象同moment對象相互轉換

//轉換爲date對象
moment().toDate() === new Date(moment())
//轉換爲moment對象
moment(new Date())

## 當前時間-取值操做

//獲取當前時間年數
moment().year() === new Date().getFullYear() === moment().get('y')
//獲取當前時間月數
moment().month()+1 === new Date().getMonth()+1
//獲取當前時間秒數
moment().seconds() === moment().second() === new Date().getMonth()
//獲取當前時間毫秒數
moment().millisecond() === moment().milliseconds()

## subtract()

//七天前的時間
let last7 = moment().subtract(6 ,'days').format('YYYY-MM-DD');
//本週第一天,週日
moment().day(0).format('YYYY-MM-DD');
//拓展-2018-07-5後一天
moment('2018-07-5').subtract(-1 ,'days').format('YYYY-MM-DD');  
//獲取上個月今天的日期
moment().subtract(1, 'months').format('YYYY-MM-DD');

返回結果:2018-08-17code

## add()

//後一天時間
moment().add(1, 'd').format('YYYY-MM-DD')
//兩小時以後
moment().add(2,'hours').format('YYYY-MM-DD HH:mm:ss');

## 本週五

moment().weekday(5).format('YYYY-MM-DD');

*## 上週五

moment().weekday(-3).format('YYYY-MM-DD');

## 本月第一天

//本月第一天
let thisMonthFirst = moment().startOf('month').format('YYYY-MM-DD');
//本年第一天
let thisYearFirst = moment().startOf('year').format('YYYY-MM-DD');

## 本月最後一天

//本月最後一天
moment().endOf('year').format('YYYY-MM-DD');
//本年最後一天
moment().endOf('month').format('YYYY-MM-DD');

## 上個月最後一天

moment('2018-10-06').date(0).format('YYYY-MM-DD');

## 是否以前

moment('2010-10-20').isBefore('2010-10-21'); // true
moment('2010-10-20').isBefore('2010-12-31', 'year'); // false
moment('2010-10-20').isBefore('2011-01-01', 'year'); // true

## 是否相同(判斷年、月、日)

moment('2010-10-20').isSame('2010-10-20'); // true
moment('2010-10-20').isSame('2009-12-31', 'year');  // false
moment('2010-10-20').isSame('2010-01-01', 'year');  // true
moment('2010-10-20').isSame('2010-10-31', 'month');  // true
moment('2010-10-20').isSame('2011-01-01', 'year');  // false

## 是否以後(同是否以前)

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

## 是否之間

moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true

## 標準化單位

moment().get('y')           // 'year'
moment().get('year')        // 'year'
moment().get('years')       // 'year'
moment().year()             // 'year'
moment().years()            // 'year'

moment().get('M')+1         // 'month'
moment().get('Month')+1     // 'month'
moment().get('Months')+1    // 'month'
moment().get('month')+1     // 'month'
moment().get('months')+1    // 'month'
moment().month()+1
moment().months()+1

moment().get('D')           // 'Day'
moment().get('Day') 
moment().get('Days') 
moment().day()
moment().days()

moment().get('H');          // 'Hours'
moment().get('Hour');
moment().get('Hours');
moment().get('h');          // 'Hours'
moment().get('hour');
moment().get('hours');
moment().hour();
moment().hours();

moment().get('m');          //minute
moment().get('minute');
moment().get('minutes');
moment().get('Minute');
moment().get('Minutes');

moment().get('s');          //second
moment().get('second');
moment().get('seconds');
moment().get('S');
moment().get('Second');
moment().get('Seconds');
moment().second();
monent().seconds();

後記:在使用moment格式化時間的時候常常會出現比實際時間遲8小時的問題,使用utcOffset解決orm

monent(myDate).utcOffset(0).format('YYYY/MM/DD HH:mm:ss')
monent(myDate).utc(0).format('YYYY/MM/DD HH:mm:ss')

參考文檔:Moment.js中文網對象

相關文章
相關標籤/搜索