moment.js与dayjs安装与使用

JavaScript023

moment.js与dayjs安装与使用,第1张

安装moment

moment 可以在浏览器和Nodejs环境中引入。以浏览器为例

Moment对象长这样子。

它并不会自行转换成时间字符串。

用format方法尝试 转换,它是一个标明了时区的绝对时间

语言的引入

经测试,并没有得到想要的结果。

新建对象的形式

赋值或者取值。赋值传值,取值不传

求一组时间的最大值和最小值

增加、减少相对时间,比如增加7天

格式化

其它方法

这里只是很小一部分方法,其余看官网

http://momentjs.cn/docs/

Day.js被设计用于在浏览器和Node.js中工作。

安装

以浏览器为例,引入

dayjs对象

国际化, dayjs的国际化设置没有问题。

dayjs与moment大同小异。不同的是dayjs实现某些功能需要另外引入插件,dayjs本身提供一个较小的包。

引入插件

大概看看dayjs的一些方法,基本上与moment的方法名是一致的

常规的时间处理直接使用 [dayjs](https://www.npmjs.com/package/dayjs) 库就可以满足了,大而全一些的就使用 [momnet.js](http://momentjs.cn/) 处理吧\n\ndayjs适合移动端或网站对时间处理没那么复杂的,比较轻量\n\nmoment.js是一个功能非常齐全的处理时间的类库,在PC站上使用比较合适,毕竟使用wifi比使用流量好多了,哈哈\n\n如果一般项目已经使用了dayjs,突然来个需求要处理utc时间转换,这时又不想再下载momnet.js,有以下两个方式可以处理\n\n### 一、手写\n\n```\nvar bjTimestamp = 1584027168\nvar localTimezoneMinutes = 420// 每个时区间隔1小时,转换为分钟就是60,420也就是东七区,60 * 7 = 420,而480就表示东八区转换为秒为28800\nvar localTime = dayjs((bjTimestamp + (localTimezoneMinutes - 480) * 60) * 1000).format('YYYY-MM-DD')\n```\n\n### 二、下载dayjs-plugin-utc扩展插件\n\nnpm安装地址:https://www.npmjs.com/package/dayjs-plugin-utc\n\n引入后直接使用utfOffset做时区偏移就行了\n\n```\nimport dayjs from 'dayjs'\nimport dayjsPluginUTC from 'dayjs-plugin-utc'\n \ndayjs.extend(dayjsPluginUTC)\n\n// 计算当地时间\nfunction calcLocalTime (bjTimestamp, localTimezoneMinutes, format) {\n if (bjTimestamp &&localTimezoneMinutes) {\n return dayjs(bjTimestamp * 1000)\n .utcOffset(localTimezoneMinutes)\n .format(format || \"YYYY-MM-DD HH:mm\")\n }\n return \"--\"\n}\ncalcLocalTime(1584027168, 420)\n```\n\n>补充介绍一下,utc时间,世界调整时,就是各个时区的时间不一样,像北京时间是8点,那东京时间就是9点,比我们多了一个时区。之所以要转换时间,是因为手机时间会根据时区自动调整,假如我们坐一个航班8点出发到东京2个小时,我们手机当时看是10点到达,如果你到了东京手机上显示的时间应该是11点到达。\n\n"