你是否不喜欢原生javascript的日期时间函数?在这个教程里,我们将带你认识一个超强的javascript日期时间库moment.js。
你能够使用moment.js来做什么?
首先,你可以创建一个新的moment 对象。它通过全局的moment() 方法来完成。如果你不设置参数,它将使用当前的时间。另外,你可以使用时间戳、一个数组或格式化字符串来解析一个日期时间。
创建moment 对象
// Create a new moment object var now = moment(); // Create a moment in the past, using a string date var m = moment("April 1st, 2005", "MMM-DD-YYYY"); // Create a new moment using an array var m = moment([2005, 3, 1]);
注意:和JavaScript Date() 对象一样,月份是从0开始的,所以3是4月份。
格式化时间
// What time is it? console.log(moment().format('HH:mm:ss')); // 16:13:11 // What day of the week is it? var day = moment().day(); // 5 console.log( moment.weekdays[day] ); // Friday // What is the current month name? console.log( moment.months[moment().month()] ); // August // What time is it in London? (time zone: UTC) console.log( moment.utc().format('HH:mm:ss') ); // 13:23:41 // What time is it in Japan? (time zone: UTC+9) console.log( moment.utc().add('hours',9).format('HH:mm:ss') ); // 22:23:41
如上所示, format方法用于将moment 对象转换为一个可读的时间格式。这里有很多选项可以选择,但是要比PHP的date函数简单得多。
格式化日期
// How old are you? var m = moment("Mar 26th, 1989", "MMM-DD-YYYY"); console.log('You are '+m.fromNow() + ' old'); // You are 23 years ago old // Oops. We better leave the "ago" part out: console.log('You are '+m.fromNow(true) + ' old'); // You are 23 years old // When will the next world cup be? console.log( moment('June 12th, 2014','MMM DD YYYY').fromNow() ); // in 2 years // What will be the date 7 days from now? console.log( moment().add('days',7).format('MMMM Do, YYYY') ); // September 7th, 2012
fromNow() 对于区分两个日期时间差异非常有用。它自动将返回的秒数转换为年。
Time duration
// Find the duration between two dates var breakfast = moment('8:32','HH:mm'); var lunch = moment('12:52','HH:mm'); console.log( moment.duration(lunch - breakfast).humanize() + ' between meals' ) // 4 hours between meals
duration method方法使用毫秒为单位插件一个新的对象。通过使用humanize()方法,我们能够获取一个通俗的版本。