7种最佳JavaScript日期库
web前端开发
共 6746字,需浏览 14分钟
·
2020-09-08 06:28
Bower
requireJS
Nuget
Browsify
TypeScript
meteor
moment().add(7, 'days').subtract(1, 'months').year(2009).hours(0).minutes(0).seconds(0);
moment().subtract(6, 'days').twitterShort();
var format = moment.parseFormat('Thursday, February 6th, 2014 9:20pm');
// format will contain: dddd, MMMM Do, YYYY h:mma
var timer = moment.duration(5, "seconds").timer({loop: true},
function() {
// Callback});
setInterval(function() {
//Callback
}, 5000)
所有函数都是按文件分组的,允许您导入您需要的东西,而不必为您真正使用的两个方法而使项目变得臃肿。这对于需要优化每js行字节数的前端开发人员特别有用,因为每个字节都很重要。对于Node.js开发人员来说,这对于保持导入仍然很有用,并且需要更有条理。
与其他库(查看您的Moment.js)不同,date-fns返回的日期对象是不可变的,这有助于避免不必要的修改和无数个小时的调试。
FP子模块提供了一组与FP相关的功能,可以帮助您轻松地通过几行代码来组成复杂的行为。
它们总共支持57个不同的地区,所以如果您的目标是国际化,这里是另一个不错的选择!
他们有TypeScript和流支持。
最后但并非最不重要的是,他们的文档非常详细,这是我从一个库中一直欣赏的东西,特别是那些具有如此广泛的API的文档。
const { addYears, formatWithOptions } = require('date-fns/fp')
const { es } = require('date-fns/locale')
const addFiveYears = addYears(5)
const dateToString = formatWithOptions({ locale: es }, 'd MMMM yyyy')
const dates = [
new Date(2017, 0, 1),
new Date(2017, 1, 11),
new Date(2017, 6, 2)
]
const toUpper = arg => String(arg).toUpperCase()
const formattedDates = dates.map(addFiveYears).map(dateToString).map(toUpper)
//=> ['1 ENERO 2022', '11 FEBRERO 2022', '2 JULIO 2022']
它目前并不真正支持moment. js支持的所有功能。
它严重依赖于来自现代浏览器的Intl API,因此旧的浏览器将很难处理与国际化相关的方法。
var m1 = moment();
var m2 = m1.add(1, 'hours');
m1.valueOf() === m2.valueOf(); //=> true
var d1 = DateTime.local();
var d2 = d1.plus({ hours: 1 });
d1.valueOf() === d2.valueOf(); //=> false
您不需要额外的配置文件来处理语言环境,浏览器会为您完成这些工作。
如果你想在Node上实现这个功能,你需要一个polyfill模块或者构建一个有完整ICU支持的Node。如果这两项都不做,库仍然可以工作,但是本地化函数什么也做不了。
ms('2 days') // 172800000
ms('1d') // 86400000
ms('10h') // 36000000
ms('2.5 hrs') // 9000000
ms('2h') // 7200000
ms('1m') // 60000
ms('5s') // 5000
ms(60000) // "1m"
ms(2 * 60000) // "2m"
ms(-3 * 60000) // "-3m"
// implement a TemporalAdjuster that returns the next or same even day of month
var nextOrSameEvenDay = {
adjustInto: function(t) {
return t.dayOfMonth() % 2 === 0 ? t : t.plusDays(1);
}
};
LocalDateTime.parse("2012-12-23T12:00").with(nextOrSameEvenDay); // '2012-12-24T12:00'
LocalDate.parse("2012-12-24").with(nextOrSameEvenDay); // '2012-12-24'
const spacetime = require('spacetime')
let d = spacetime('March 1 2012', 'America/New_York')
//set the time
d = d.time('4:20pm')
console.log(d.time())
d = d.goto('America/Los_Angeles')
console.log(d.time())
//'1:20pm'
d = d.goto('Eastern Time') // "America/New_York"
d = d.goto('PST') // automatically becomes 'PDT' in the summer
spacetime.extend({
isHappyHour: function() {
return this.hour() === 16
}
})
d = d.time('4:15pm')
console.log(d.isHappyHour())
//true
评论
Day.js轻量级 JavaScript 时间日期处理库
Day.js是一个仅2kb大小的轻量级 JavaScript时间日期处理库,和Moment.js的API设计保持完全一样。如果你曾经用过Moment.js,那么你已经知道如何使用Day.js。dayj
Day.js轻量级 JavaScript 时间日期处理库
0
date-fns现代的 JavaScript 日期工具类库
date-fns 是一个现代的 JavaScript 日期工具类库,提供了最全面、最简单和一致的工具
date-fns现代的 JavaScript 日期工具类库
0
date-fns现代的 JavaScript 日期工具类库
date-fns是一个现代的JavaScript日期工具类库,提供了最全面、最简单和一致的工具集,用于在浏览器和Node.js中操作JavaScript日期。功能特性模块化:根据需求选择需要引用的模块
date-fns现代的 JavaScript 日期工具类库
0
DatejsJavaScript日期库
Date.js是一个开源的JavaScript库,用来解析、格式化和处理日期数据,支持多种语言的日期格式处理。示例代码:Date.today() //Returns
DatejsJavaScript日期库
0
dateparserPython 日期解析库
dateparser是一个Python开发包,用来解析各种日期数据。主要特性:支持几乎所有现有的日期格式:绝对日期,相对日期("twoweeksago"或"tomorrow"),时间戳等。支持200多
dateparserPython 日期解析库
0