Moment.js

一、使用方法
nodeJs、浏览器、requireJs
二、解析
moment、是否合法、Date对象、克隆、数组、日期转字符串、
毫秒、秒、分钟、小时、日期(几号)、星期几、一年中(天、周)、月、季度、年、周数、取值、赋值、最大值、最小值
三、操作
方法链、加法、减法、开始时间、结束时间、本地化、UTC、UTC偏移量、时区偏移量
四、显示
格式化、时差、Unix 时间戳 (秒)、天数(一个月)、数组、JSON、是否之前、是否相同、是否之后、是否之间、是否闰年

一、使用方法

1. Node.js

npm install moment
var moment = require('moment');
moment().format();

2. 浏览器

<script src="moment.js"></script>
<script> moment().format(); </script>

3. Require.js

require.config({
    paths: {
        "moment": "path/to/moment",
    }
});
define(["moment"], function (moment) {
    moment().format();
});

二、解析

moment();  //当前时间
moment("1995-12-25")        //转换字符串
moment("12-25-1995", "MM-DD-YYYY")    //字符串 + 格式
moment("2010 13","YYYY MM").isValid();     // false 校验是否合法
moment(1318781876406)   //Unix 偏移量 (毫秒)
var day = new Date(2011, 9, 16) ;  
moment(day)  //Date 对象 
moment(Moment)   //克隆
var a = moment.utc([2011, 0, 1, 8]) //数组
new Date(2013, 25, 14).toString();   //日期转换成字符串

毫秒

moment().millisecond()  //得到毫秒数
moment().millisecond(Number)  //设置毫秒

moment().second(Number);//设置秒
moment().second(); // 得到秒数
moment().seconds(Number);
moment().seconds(); 

分钟

moment().minute(Number); //设置分钟数
moment().minute(); //得到分钟数
moment().minutes(Number); 
moment().minutes(); 

小时

moment().hour(Number);  //设置小时数
moment().hour(); // 得到小时数
moment().hours(Number);  
moment().hours(); 

日期(几号)

moment().date(Number); //设置日期
moment().date(); // 得到当前是几号
moment().dates(Number); 
moment().dates(); 

星期几

moment().day(Number|String); //设置星期
moment().day(); // 得到星期
moment().days(Number|String); //设置星期
moment().days(); // 得到星期
moment().day(-7); // last Sunday (0 - 7)
moment().day(24); // 3 Wednesdays from now (3 + 7 + 7 + 7)

星期 (区域标准)

moment().weekday(Number);
moment().weekday(); // Number

天 (一年中的第几天)

moment().dayOfYear(Number); //设置是这一年的第几天
moment().dayOfYear();    //得到是这一年的第几天

周 (一年中的第几周)

moment().week(Number); //设置是这一年的第几周
moment().week(); // 得到是这一年的第几周
moment().weeks(Number);
moment().weeks();  

moment().month(Number|String); //设置月份
moment().month();  //得到当前是几月
moment().months(Number|String);
moment().months(); 

季度

moment().quarter(); // 得到季度
moment().quarter(Number); //设置季度

moment().year(Number); //设置年份
moment().year(); // 得到年份
moment().years(Number);
moment().years(); // Number

周数 (一年多少周)

moment().weeksInYear() 
//Gets the number of weeks according to locale in the current moment's year.

取值

moment().get('year');
moment().get('month');  // 0 to 11
moment().get('date');
moment().get('hour');
moment().get('minute');
moment().get('second');
moment().get('millisecond');

赋值

moment().set('year', 2013);
moment().set('month', 3);  // April
moment().set('date', 1);
moment().set('hour', 13);
moment().set('minute', 20);
moment().set('second', 30);
moment().set('millisecond', 123);

moment().set({'year': 2013, 'month': 3});

最大值

var a = moment().subtract(1, 'day');
var b = moment().add(1, 'day');
moment.max(a, b);  // b

最小值

var a = moment().subtract(1, 'day');
var b = moment().add(1, 'day');
moment.min(a, b);  // a

三、操作

方法链

moment().add(7,'days').subtract(1,'months').year(2009).hours(0).minutes(0).seconds(0);

加法

moment().add(Number, String);
moment().add(Duration);
moment().add(Object);

moment().add(7, 'days');
moment().add(7, 'days').add(1, 'months'); // with chaining
moment().add({days:7,months:1}); // with object literal
特别的 1:
moment([2010, 0, 31]);                  // January 31
moment([2010, 0, 31]).add(1, 'months'); // February 28
特别的 2var m = moment(new Date(2011, 2, 12, 5, 0, 0)); // the day before DST in the US
m.hours(); // 5
m.add(1, 'days').hours(); // 5

var m = moment(new Date(2011, 2, 12, 5, 0, 0)); // the day before DST in the US
m.hours(); // 5
m.add(24, 'hours').hours(); // 6

减法

moment().subtract(Number, String);
moment().subtract(Duration);
moment().subtract(Object);
moment().subtract(7, 'days');

开始时间 :所给时间的开始点值

moment().startOf(String);
moment().startOf('year');
等价于
moment().month(0).date(1).hours(0).minutes(0).seconds(0).milliseconds(0);

结束时间

moment().endOf(String);
moment().endOf("year"); // set the moment to 12-31 11:59:59.999 pm this year

本地化

moment().local();
1.
var a = moment.utc([2011, 0, 1, 8]);
a.hours(); // 8 UTC
a.local();
a.hours(); // 0 PST
2.
moment.utc([2011, 0, 1, 8]).format('YYYY-MM-DD HH:mm:ss');//2011-01-01 08:00:00
moment.utc([2011, 0, 1, 8]).local().format('YYYY-MM-DD HH:mm:ss');//2011-01-01 16:00:00
等价于
moment.utc([2011, 0, 1, 8]).zone(-8).format('YYYY-MM-DD HH:mm:ss');
moment.utc([2011, 0, 1, 8]).utcOffset(8).format('YYYY-MM-DD HH:mm:ss')

UTC

moment().utc();
var a = moment([2011, 0, 1, 8]);
a.hours(); // 8 PST
a.utc();
a.hours(); // 16 UTC

UTC偏移量

moment().utcOffset();
moment().utcOffset(Number|String);
moment().utcOffset(8);  // set hours offset 小于16大于-16,算小时
moment().utcOffset(480);  // set minutes offset (8 * 60) 大于16或者小于-16,算分钟

时区偏移量

moment().zone();
moment().zone(Number|String);
moment().zone(480);// set minutes offset (8 * 60) 大于16或者小于-16,算分钟
moment().zone(8); //小于16大于-16,算小时

四、显示

格式化

moment().format();
moment().format(String);
moment().format();                                // "2014-09-08T08:02:17-05:00" (ISO 8601)
moment().format('YYYY-MM-DD HH:mm:ss')            //2016-05-07 20:47:15
moment().format("dddd, MMMM Do YYYY, h:mm:ss a"); // "Sunday, February 14th 2010, 3:25:50 pm"
moment().format("ddd, hA");                       // "Sun, 3PM"
moment('gibberish').format('YYYY MM DD');         // "Invalid date"
moment().format('[today] dddd'); // 'today Sunday'

时差(之前,现在为基准)

moment().fromNow();
moment().fromNow(Boolean);
moment([2007, 0, 29]).fromNow(); // 9 years ago
moment([2007, 0, 29]).fromNow(true); // 9 years

时差(之前)

moment().from(Moment|String|Number|Date|Array);
moment().from(Moment|String|Number|Date|Array, Boolean);
var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b) // "a day ago"
var start = moment([2007, 0, 5]);
var end = moment([2007, 0, 10]);
end.from(start);       // "in 5 days"
end.from(start, true); // "5 days"

时差(之后,现在为基准)

moment().toNow();
moment().toNow(Boolean);
moment([2007, 0, 29]).toNow(); // in 9 years
moment([2007, 0, 29]).toNow(true); // 9 years

时差(之后)

moment().to(Moment|String|Number|Date|Array);
moment().to(Moment|String|Number|Date|Array, Boolean);
var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.to(b) // "in a day"

时差(毫秒)

moment().diff(Moment|String|Number|Date|Array);
moment().diff(Moment|String|Number|Date|Array, String);
moment().diff(Moment|String|Number|Date|Array, String, Boolean);
1.一个参数的情况
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
2.第二个参数设置显示
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b, 'days') // 1

Unix 时间戳 (秒)

moment().unix();
moment(1318874398806).unix(); // 1318874398

天数 (一个月多少天)

moment().daysInMonth();
moment("2012-02", "YYYY-MM").daysInMonth() // 29
moment("2012-01", "YYYY-MM").daysInMonth() // 31

数组

moment().toArray();
moment().toArray(); // [2013, 1, 4, 14, 40, 16, 154];

JSON

moment().toJSON();
JSON.stringify({ postDate : moment() }); // '{"postDate":"2013-02-04T22:44:30.652Z"}'
moment.fn.toJSON = function() { return this.format(); }
等价
JSON.stringify({
    postDate : moment()
}); // '{"postDate":"2013-02-04T14:44:30-08:00"}'

是否之前 (向上原则:比如第二个参数是比较day,则会比较month,year;但如果是年,则不比较month和day)

moment().isBefore(Moment|String|Number|Date|Array);
moment().isBefore(Moment|String|Number|Date|Array, String);
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().isSame(Moment|String|Number|Date|Array);
moment().isSame(Moment|String|Number|Date|Array, String);
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-12-31', 'year');  // true
moment('2010-10-20').isSame('2011-01-01', 'year');  // false
注意:
moment('2010-01-01').isSame('2011-01-01', 'month'); // false, different year
moment('2010-01-01').isSame('2010-02-01', 'day');   // false,

是否之后(向上原则)

moment().isAfter(Moment|String|Number|Date|Array);
moment().isAfter(Moment|String|Number|Date|Array, String);
moment('2010-10-20').isAfter('2010-10-19'); // true
moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

是否之间(向上原则)

moment().isBetween(moment-like, moment-like);
moment().isBetween(moment-like, moment-like, String);
// where moment-like is Moment|String|Number|Date|Array
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year'); // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year'); // true

是否闰年

moment().isLeapYear();
moment([2000]).isLeapYear() // true
moment([2001]).isLeapYear() // false
moment([2100]).isLeapYear() // false

你可能感兴趣的:(moment-js)