day.js使用_使用Day.js解析,验证,处理和显示JavaScript中的日期和时间

day.js使用

With it’s last release nearly a year ago, the most recent commit over 6 months ago, and hundreds of open bugs and pull requests, it’s starting to seem like Moment.js is slowing down and it’s time to shop for more actively maintained alternatives. Insert Day.js, a minimalist date and time library weighing in at 2kB that provides a mostly Moment.js-compatible API for ease of transition.

大约一年前的最新版本,六个月前的最新提交以及数百个打开的错误和提取请求,似乎开始使Moment.js的速度变慢,是时候购买更积极维护的替代方案了。 插入Day.js,这是一个最小的日期和时间库,其大小为2kB,它提供了与Moment.js几乎兼容的API,以简化转换过程。

Day.js入门 (Getting Started with Day.js)

To get started with Day.js in your Node.js project, simply add the dependency with either npm or yarn:

要在您的Node.js项目中开始使用Day.js,只需使用npmyarn添加依赖项:

$ npm install dayjs --save
# or
$ yarn add dayjs

Then simply include it in your script:

然后只需将其包含在脚本中:

const dayjs = require('dayjs');

Day.js also works in modern browsers and can be self-hosted or included by way of a CDN provider like cdnjs.

Day.js也可以在现代浏览器中使用,并且可以自行托管,也可以通过CDN提供程序(例如cdnjs)包含

解析日期和时间 (Parsing Dates and Times)

Parsing a date and time string into a Day.js object is easy and supports strings, numbers, native JavaScript Date objects as well as other Day.js objects:

将日期和时间字符串解析为Day.js对象很容易,并且支持字符串,数字,本机JavaScript Date对象以及其他Day.js对象:

let date = dayjs('2019-12-27');
date = dayjs('20191227');
date = dayjs(new Date(2019, 11, 27));
date = dayjs(day('2019-12-27'));

You can even omit the string entirely to default the Day.js object to the current date and time:

您甚至可以完全忽略该字符串,以将Day.js对象默认为当前日期和时间:

date = dayjs();

验证日期和时间 (Validating Dates and Times)

Once you’ve parsed a date and time with Day.js you can leverage the isValid() method to determine if what you passed in was actually something Day.js could parse:

使用Day.js解析日期和时间后,就可以利用isValid()方法来确定传入的内容是否实际上是Day.js可以解析的内容:

dayjs('2019-12-27').isValid(); // true
dayjs('tomorrow').isValid(); // false

Additionally, if you were to attempt to display a Day.js object that was fed with a date that couldn’t be parsed, the return will be Invalid Date.

此外,如果您试图显示一个Day.js对象,该对象提供了无法解析的日期,则返回值为Invalid Date

显示日期和时间 (Displaying Dates and Times)

The .format() method allows us to take the Day.js object and convert it into a human-readable string. It supports your common set of date and time variables, like YYYY for a full year, and MM and mm for month and minutes respectively.

.format()方法允许我们获取Day.js对象并将其转换为人类可读的字符串。 它支持您常用的日期和时间变量集,例如,全年为YYYY ,月份和分钟为MMmm

For those times when you want to include additional text that you don’t want to be converted to a date or time part, you can “hug” the string with brackets [ and ]:

对于那些当您想要包括不想被转换为日期或时间部分的其他文本时,可以用括号[]来“拥抱”字符串:

dayjs().format('YYYY-MM-DD [at] HH:mm:ss');
dayjs().format('HH:mm:ss [on] YYYY-MM-DD');

处理日期和时间 (Manipulating Dates and Times)

In a previous section we attempted to pass in the string tomorrow and it was considered an invalid date. To be able to get the date and time for tomorrow, we can start with today’s date and time, and add a day to it:

在上一节中,我们尝试tomorrow传递字符串,这被认为是无效日期。 为了能够获取明天的日期和时间,我们可以从今天的日期和时间开始,并为其添加一天:

dayjs().add(1, 'day').format('YYYY-MM-DD');

In addition to adding a day, you can also add month and year and even time-based intervals like hour and minute:

除了添加day ,您还可以添加monthyear ,甚至是基于时间的时间间隔,例如hourminute

dayjs().add(1, 'hour').format('YYYY-MM-DD HH:mm:ss');
dayjs().add(30, 'minute').format('YYYY-MM-DD HH:mm:ss');
dayjs().add(3, 'month').format('YYYY-MM-DD HH:mm:ss');
dayjs().add(3, 'year').format('YYYY-MM-DD HH:mm:ss');

You can even chain it to do things like add multiple intervals:

您甚至可以将其链接起来以执行诸如添加多个间隔的操作:

dayjs().add(1, 'hour').add(30, 'minute').format('YYYY-MM-DD HH:mm:ss');

Don’t you worry, there’s a subtraction method as well:

不用担心,还有一种减法:

dayjs().subtract(4, 'hour').format('YYYY-MM-DD HH:mm:ss');

比较日期和时间 (Comparing Dates and Times)

One of the more complex tasks that comes up pretty regularly in development is the comparison of dates and times. Day.js makes it easy be providing helper methods such as isBefore() and isAfter():

在开发中经常出现的比较复杂的任务之一是日期和时间的比较。 通过Day.js,可以轻松提供诸如isBefore()isAfter()类的辅助方法:

const date1 = dayjs('2020-01-1');
const date2 = dayjs();

if (date1.isBefore(date2)) {
  console.log('Date 1 falls before date 2');
}
else if (date1.isAfter(date2)) {
  console.log('Date 2 falls before date 1');
}
else if (date1.isSame(date2)) {
  console.log('Date 1 and date 2 are the same');
}

结论 (Conclusion)

With it’s familiar interfacing and active maintenance (even during the holidays), Day.js seems like a great alternative for Moment.js.

有了熟悉的接口和主动维护(即使在假日期间),Day.js似乎是Moment.js的绝佳替代品。

Give it a try on your next project, I know I will be.

试试看您的下一个项目,我知道我会的。

翻译自: https://www.digitalocean.com/community/tutorials/js-dayjs

day.js使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值