Spacetime 介绍
Spacetime使用一种轻量级的方式来操纵,遍历,比较和格式化地球上任意地区的日期和时间。 ?
特色:
获取 /设置 ?远程时区的日期很时间
全球 支持 夏令时 ,? 闰年+秒 ,和 半球时间
按季度、季节、月份和星期计算
远程日期比较
以 ES2015 js 编写,使用 ES5 发布,测试了 Node 和浏览器
只有 35KB ?(压缩后12KB)
经过良好测试,Apache 2.0 授权
安装
npm install spacetime --save
测试
在 Node 中:
npm test
格式化日期
Spacetime 允许以一堆 默 认格式 快速 渲染日期和时间。你可以通过直接 调用 ?.format()?而不使用参数。
如果你希望传递所需的格式:
s.format('day-short')
// 'Sat'
s.format('date-ordinal')
// '26th'
Spacetime 支持 灵活的,以人为本的格式,而不是经典的 Unix 格式化样式(即 'ddd hA' )。
方法* 'day' - 'Friday'
* 'day-short' - 'Fri'
* 'date' - '5'
* 'date-ordinal' - '5th'
* 'month' - 'January'
* 'month-short' - 'Jan'
* 'time' - '4:59pm'
* 'time-24h' - '16:59'
* 'year' - '2018'
* 'year-short' - "'18"
* 'numeric-us' - '01/05/2018'
* 'numeric-uk' - '05/01/2018'
* 'numeric-cn' - '2018/01/05'
* 'iso' - '2018-01-05T16:59:33:152Z'
* 'iso-short' - '2018-01-05'
* 'iso-utc' - '2018-01-05T14:59:33.152Z'
* 'nice' - 'January 5th,4:59pm'
* 'nice-day' - 'Friday January 5th,4:59pm'
* 'nice-short' - 'Jan 5th,4:59pm'
* 'full' - 'Friday January 5th,2018'
* 'full-short' - 'Fri Jan 5th,2018'
* 'ordinal' - '5th'
* 'date-short' - '5'
* 'time-12h' - '4:59pm'
* 'time-h12' - '4:59pm'
* 'time-h24' - '16:59'
* 'numeric' - '01/05/2018'
* 'mdy' - '01/05/2018'
* 'dmy' - '05/01/2018'
* 'ymd' - '2018/01/05'
* 'little-endian' - '05/01/2018'
* 'big-endian' - '2018/01/05'
输入日期
你可以使用各种输入创建 一个 特定的日期+时间,取决于你的使用习惯。
Spacetime 支持 所有 JavaScript 日期输入格式:
ISO Date "2015-03-25"
Short Date "03/25/2015" or "2015/03/25"
Long Date "Mar 25 2015" or "25 Mar 2015"
Full Date "W edn esday marc h 25 2015"
Epoch Time 1493042538
以及一些更 结构化 的格式,如:
// 数组
spacetime([2019,1,6,30]) // January 1st,2019,6:30am
// 基于对象
spacetime({year:2016,month:1,date:3})// February 1st,2016
与 JavaScript Date 对象一样,当有信息丢失时,Spacetime 将使用你当前的本地时间填充缺少的信息:
// Will be June,with your current year,date,and time
spacetime({month:'june'})
// June 3rd,2017,12:02pm (or whatever)
数组和基于对象的输入使用基于0的月份,因为假设它们在软件中动态使用。一如以往,每个月的日期都是以1为基础的。
API
var spacetime=require('spacetime')
s = spacetime. Now () //现在
s = spacetime.today() // 今天早上
s = spacetime.tomorrow() // 明天早上
// 输入日期
s = spacetime(1489520157) // 特定时间,例如1970-01-01 0 UTC
s = spacetime([2017,5,2]) // yyyy,m,d (月的基数是0,天的基数是1)
s = spacetime('July 2,2017 5:01:00') // 国际标准 ISO 表示 方法
// 远程日期
s = spacetime(1489520157,'Canada/Pacific')
// 获取 / 设置方法
s.date() // 14
s.year() // 2017
s.season() // Spring(季节)
s.hour(5) // 更改为上午5点
s.date(15) // 更改为第15
s.day('monday') // 更改为星期一(本周)
s.month(' marc h') // 更改为3月1日(今年)
s.quarter(2) // 更改为4月1日
// 加/减 方法
s.add(1,'week')
s.add(3,'quarters')
s.subtract(2,'months').add(1,'day')
// 时区元数据
s.timezone().name // 'Canada/Eastern' (推测或显式)
s.timezone().hemisphere // 北半球
s.timezone().current.offset // -240 (以分钟为单位)
s.timezone().current.isDst // True
// 比较
let d = spacetime([2017,2])
let start = s.clone()
let end = s.clone()
start.subtract(1,'milliseconds')
end.add(1,'milliseconds')
// gt/lt/equals
s.isAfter(d) // True
s.isEqual(d) // False
s.isBefore(d) // False
s.isBetween(start,end) // True
// 单位比较
s.isSame(d,'year') // True
s.isSame(d,'date') // False
s.diff(d,'day') // 5
s.diff(d,'month') // 0
// 格式化日期+时间
s.format('time') // '5:01am'
s.format('numeric-uk') // 02/03/2017
s.format('month') // 'April'
s.format('month-short') // 'Apr'
// 日历
s.startOf('day') // 12:00am
s.startOf('month') // 12:00am,April 1st
s.endOf('quarter') // 11:59:59pm,June 30th
// 基于百分比的信息
s.progress().month = 0.23 // 一个 季度的第 一个 月
s.progress().day = 0.48 // 几乎中午
s.progress().hour = 0.99 // 59分59秒
// 其他 功能
s.goto('Australia/Brisbane') // 同时转入新的时区
s.clone() // 创建 一个 副本
s.isValid() // 验证(9月32日 → false)
网站地址 : https://spencermountain.github.io/spacetime/
GitHub: https://github.com/spencermountain/spacetime
网站描述: 轻量级的时区处理JavaScript库
Spacetime官方网站
官方网站: https://spencermountain.github.io/spacetime/
如果觉得 网站内容还不错,欢迎将 网站 推荐给程序员好友。