通过 node.js 安装并使用
// 安装
npm install moment
// 使用,moment可直接调用
import moment from 'moment';
moment().format();
// 官方
//
如果想直接在html文件中使用moment,那么需要先引入moment.js文件,可以在 cdnjs 中获得最新的 moment.js 文件
moment();
调用moment(),不需要任何参数就可以创建当前时间的moment对象
moment("1995-12-25");
可以创建时间为传入参数的moment对象
moment(String, String);
moment(String, String, String);
moment(String, String, Boolean);
moment(String, String, String, Boolean);
//
moment("12-25-1995", "MM-DD-YYYY");
moment("12/25/1995", "MM/DD/YYYY");
moment('2012 July', 'YYYY MMM', 'en');
moment('It is 2012-05-25', 'YYYY-MM-DD', true).isValid(); // false
moment('It is 2012-05-25', 'YYYY-MM-DD').isValid(); // true
moment('2012-05-25', 'YYYY-MM-DD', true).isValid(); // true
一开始没懂这个要怎么用,后来终于看懂了…
moment("29-06-1995", ["MM-DD-YYYY", "DD-MM", "DD-MM-YYYY"]); // uses the last format
moment("05-06-1995", ["MM-DD-YYYY", "DD-MM-YYYY"]); // uses the first format
和上面一样,传入多个解析的时间格式
moment({unit: value, ...});
//
moment({ hour:15, minute:10 });
可以传入自定义的时间值来构建moment对象
var day = moment(1318781876406);
传入的值是13位的时间戳
var day = moment.unix(1318781876);
传入的值是10位的时间戳
var day = new Date(2011, 9, 16);
var dayWrapper = moment(day);
也可以传入Date对象
[year, month, day, hour, minute, second, millisecond]
moment([2010, 1, 14, 15, 25, 50, 125]); // February 14th, 3:25:50.125 PM
可以传入数组
var a = moment([2012]);
var b = moment(a); // var b = a.clone();
a.year(2000);
b.year(); // 2012
克隆moment对象
moment().isValid();
可以校验moment对象的合法性,根据以下几点判断是否合法
moment('Marbruary', 'MMMM');
显示无效月份的字符串或者nullmoment('this isnonsense');
Booleanmoment(null);
Booleanmoment('2013-05-25', [])
Booleanvar m = moment("2011-10-10T10:20:90");
m.isValid(); // false
m.invalidAt(); // 5 for seconds
可以用invalidAt 判断是那个时间单位出错了
moment(5, "HH"); // today, 5:00:00.000
moment({hour: 5}); // today, 5:00:00.000
给 moment对象设置默认值
moment().millisecond(Number);
moment().millisecond(); // Number
moment().second(Number);
moment().second(); // Number
moment().minute(Number);
moment().minute(); // Number
moment().hour(Number);
moment().hour(); // Number
moment().date(Number);
moment().date(); // Number
范围从 1-31
moment().day(Number|String);
moment().day(); // Number
取到当周、上周、下周的某个天
范围从 0-6
星期日是0
moment().dayOfYear(Number);
moment().dayOfYear(); // Number
moment().week(Number);
moment().week(); // Number
moment().month(Number|String);
moment().month(); // Number
范围从 0-11
moment().quarter(); // Number
moment().quarter(Number);
范围从 1-4
moment().year(Number);
moment().year(); // Number
范围从 -270,000 - 270,000
moment().weeksInYear();
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().get(unit) === moment()[unit]()
单位不区分大小写,并支持复数和缩写形式
moment().set(String, Int);
moment().set(Object(String, Int));
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.js 提供了很多方法给用户执行各种操作,但要注意的是,这些操作都会改变原先的对象,如果你不想原先对象的值被改变,那么你要先克隆原先的对象
moment().add(Number, String); // moment().add(7, 'days');
moment().add(Duration); // moment().add(moment.duration({'days' : 1}));
moment().add(Object); // moment().add({days:7,months:1});
moment().subtract(Number, String);
moment().subtract(Duration);
moment().subtract(Object);
moment().startOf(String);
//
moment().startOf('year'); // set to January 1st, 12:00 am this year
moment().startOf('month'); // set to the first of this month, 12:00 am
moment().startOf('quarter'); // set to the beginning of the current quarter, 1st day of months, 12:00 am
moment().startOf('week'); // set to the first day of this week, 12:00 am
moment().startOf('isoWeek'); // set to the first day of this week according to ISO 8601, 12:00 am
moment().startOf('day'); // set to 12:00 am today
moment().startOf('hour'); // set to now, but with 0 mins, 0 secs, and 0 ms
moment().startOf('minute'); // set to now, but with 0 seconds and 0 milliseconds
moment().startOf('second'); // same as moment().milliseconds(0);
moment().endOf(String);
moment().max(Moment|String|Number|Date|Array)
moment().max(moment().add(1, 'd')); // moment()
a.max(b)
is the same as a = moment.min(a, b)
(note that max is converted to min).
虽然看起来是取最大值,但实际上返回的是两个对象中更小的那个
moment().min(Moment|String|Number|Date|Array)
moment().max(moment().add(1, 'd')); // moment().add(1, 'd')
moment().format(String)
moment().format('YYYY-MM-DD')
moment().fromNow();
moment().fromNow(Boolean);
//
moment([2007, 0, 29]).fromNow(); // 4 years ago
moment([2007, 0, 29]).fromNow(true); // 4 years // 如果是true,则没有后缀
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"
moment().toNow();
moment().toNow(Boolean);
moment().to(Moment|String|Number|Date|Array);
moment().to(Moment|String|Number|Date|Array, Boolean);
moment().diff(Moment|String|Number|Date|Array);
moment().diff(Moment|String|Number|Date|Array, String);
moment().diff(Moment|String|Number|Date|Array, String, Boolean);
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
a.diff(b, 'days') // 1
取13位的时间戳
moment().valueOf();
取10位的时间戳
moment().unix();
moment().daysInMonth();
moment().toDate();
moment().toArray();
//
moment().toArray(); // [2013, 1, 4, 14, 40, 16, 154]
moment().toJSON()
moment().toObject();
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#startOf
一样,moment().isBefore
也支持多个时间单位对比
moment().isSame(Moment|String|Number|Date|Array);
moment().isSame(Moment|String|Number|Date|Array, String);
moment().isAfter(Moment|String|Number|Date|Array);
moment().isAfter(Moment|String|Number|Date|Array, String);
moment().isBetween(moment-like, moment-like);
moment().isBetween(moment-like, moment-like, String);
//
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
moment().isLeapYear();
moment.isMoment(obj);
moment.isDate(obj);
moment.duration(Number, String);
moment.duration(Number);
moment.duration(Object);
moment.duration(String);
//
moment.duration(100); // 100 milliseconds
moment.duration(2, 'seconds'); // 2000 milliseconds
moment.duration({ seconds: 2 }); 2000 milliseconds
moment.duration('0:0:2') // 2000 milliseconds
当调用 moment.duration() 时,是以毫秒作为时间单位,创建一个 moment
对象。
注意:如果传入的变量是毫秒数,类型要number,不能传 string
moment.duration(1, "minutes").humanize(); // a minute
moment.duration(2, "minutes").humanize(); // 2 minutes
moment.duration(24, "hours").humanize(); // a day
自动换算单位
moment.duration().milliseconds();
moment.duration().asMilliseconds();
moment.duration(500).milliseconds(); // 500
moment.duration(1500).milliseconds(); // 500
moment.duration(15000).milliseconds(); // 0
第一个值是500,因为创建出来的moment对象是 0小时0分0秒500毫秒
第二个值是500,因为创建出来的moment对象是 0小时0分1秒500毫秒
第三个值是0,因为创建出来的moment对象是 0小时0分15秒0毫秒
moment.duration().milliseconds() 返回的范围 0-999
moment.duration(500).asMilliseconds(); // 500
moment.duration(1500).asMilliseconds(); // 1500
moment.duration(15000).asMilliseconds(); // 15000
使用 moment.duration().asMilliseconds() 可以保留时间单位
moment.duration().seconds();
moment.duration().asSeconds();
moment.duration(500).seconds(); // 0
moment.duration(1500).seconds(); // 1
moment.duration(15000).seconds(); // 15
//
moment.duration(500).asSeconds(); // 0.5
moment.duration(1500).asSeconds(); // 1.5
moment.duration(15000).asSeconds(); // 15
返回的范围 0-59
moment.duration().hours();
moment.duration().asHours();
返回的范围 0-23
moment.duration().days();
moment.duration().asDays();
返回的范围 0-29
moment.duration().months();
moment.duration().asMonths();
返回的范围 0-11
注意:默认一个月有30天
moment.duration().years();
moment.duration().asDays();
注意:默认一年有365天
moment.duration().add(Number, String);
moment.duration().add(Number);
moment.duration().add(Duration);
moment.duration().add(Object);
//
var a = moment.duration(1, 'd');
var b = moment.duration(2, 'd');
a.add(b).days(); // 3
moment.duration().subtract(Number, String);
moment.duration().subtract(Number);
moment.duration().subtract(Duration);
moment.duration().subtract(Object);
moment.duration().as(String);
const duration = moment.duration(97200000); // 1day3hour
duration.get('hours'); // 3
duration.as('hours'); // 27
默认得到的 moment对象是x小时x分x秒,一般只能取到他在对应单位的值,如果想取得该对象转化为某一单位的全部值,那么要调用该方法
moment.duration().get(String);
moment.isDuration(obj);
//
moment.isDuration() // false
moment.isDuration(new Date()) // false
moment.isDuration(moment()) // false
moment.isDuration(moment.duration()) // true
moment.isDuration(moment.duration(2, 'minutes')) // true
moment.invalid(Object);
//
var m = moment.invalid();
m.isValid(); // false
var m = moment();
m.isValid(); // true