Skip to content

Latest commit

 

History

History
90 lines (66 loc) · 2.58 KB

README.zh-CN.md

File metadata and controls

90 lines (66 loc) · 2.58 KB

English | 简体中文

这是适用于dayjs的一个插件,为dayjs赋予操作UTC时区的功能


使用方法

  • Via NPM:
npm i dayjs-plugin-utc --save
import dayjsPluginUTC from 'dayjs-plugin-utc'

dayjs.extend(dayjsPluginUTC)
  • Via CDN:
<!-- Latest compiled and minified JavaScript -->
<script src="https://unpkg.com/dayjs"></script>
<script src="https://unpkg.com/dayjs-plugin-utc"></script>
<script>
  dayjs.extend(dayjsPluginUTC.default)
</script>

⚠️ 注意⚠️

当你 没使用 这个插件的时候,dayjs()返回的是基于你环境时区的实例

dayjs('2018-05-18T03:04:05+06:00').format() // 2018-05-18T05:04:05+08:00

而在你加载这个插件之后,dayjs()返回实例的时区将会与你传入的值有关

dayjs.extend(dayjsPluginUTC)
dayjs('2018-05-18T03:04:05+06:00').format() // 2018-05-18T03:04:05+06:00

如果你希望新建的实例的时区总是基于你本地时区,或者你使用这个插件之前已经在项目中使用了dayjs

你可以在引入插件时附上这个参数parseToLocal: true

dayjs.extend(dayjsPluginUTC, { parseToLocal: true })
dayjs('2018-05-18T03:04:05+06:00').format() // 2018-05-18T05:04:05+08:00

API

解析

获得一个时区为UTC的实例

  dayjs.utc() 
  dayjs.utc('2018-05-18T03:04:05+06:00') 
  /* (string | number | Date | Dayjs) 使用方法与 dayjs() 一致 */

取值

你可以使用dayjs().utcOffset()来获取实例与UTC的时间差

注意: dayjs().utcOffset() 返回的是与UTC真实的 分钟 时差,与Date.prototype.getTimezoneOffset返回一个相反值不同

你也可以使用dayjs().isLocal()dayjs().isUTC()来确认当前实例的时区是否为本地时区或是否为UTC时区

  dayjs().utcOffset() // (-480, -120, 0, 120, 480, etc.)
  dayjs().isLocal()   // true
  dayjs().isUTC()     // false

赋值

使用dayjs().utc()dayjs().local()可以将实例的时区切换到UTC或本地时区,你也可以使用dayjs().utcOffset(Number)将实例设置到一个指定的时区

  let day = dayjs('2018-05-18T03:04:05+06:00')
  
  day.utc().format()           // 2018-05-17T21:04:05+00:00

  day.local().format()         // 2018-05-18T05:04:05+08:00

  day.utcOffset(240).format()  // 2018-05-18T01:04:05+04:00