fly63前端网

www.fly63.com

首页文章资源工具教程 栏目
  • 关于我们
  • 网站投稿
  • 赞助一下
搜索

在线工具_工作生活好帮手

打造各种简单、易用、便捷的在线工具,网友无需注册和下载安装即可使用

点击查看

关闭

提交网站

Spacetime
分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://spencermountain.github.io/spacetime/
GitHub:https://github.com/spencermountain/spacetime
网站描述:轻量级的时区处理JavaScript库

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 "Wednesday March 25 2015"
Epoch Time      1493042538

以及一些更结构化的格式,如:

// 数组
spacetime([2019, 0, 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 00:00:00 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('march') // 更改为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, 5, 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://fly63.com/nav/1075

more>>
相关栏目
layer
layer是一款口碑极佳的web弹层组件
点击进入GitHub
iScroll.js
IScroll是移动页面上被使用的一款仿系统滚动插件。
官网GitHub
wangEditor
基于javascript和css开发的 Web富文本编辑器
官网GitHub
ueditor
由百度web前端研发部开发所见即所得富文本web编辑器
官网GitHub
highlight
Highlight.js 是一个用 JavaScript 写的代码高亮插件,在客户端和服务端都能工作。
官网GitHub
UglifyJS
一个js 解释器、最小化器、压缩器、美化器工具集
官网GitHub
lozad.js
高性能,轻量级,可配置的懒加载图片工具
官网GitHub
Sortable.js
简单灵活的 JavaScript 拖放排序插件
官网GitHub
validate.js
表单提供了强大的验证功能,让客户端表单验证变得更简单
官网GitHub
Draggin.js
一款兼容移动手机的js拖拽插件
官网GitHub
lazysizes.js
响应式图像延迟加载JS插件【懒加载】
官网GitHub
cropper.js
通过canvas实现图片裁剪
官网GitHub
clipboard.js
浏览器中复制文本到剪贴板的插件,不需要Flash,仅仅2kb
官网GitHub
siema
轻量级简单的纯 Js轮播插件
官网GitHub
Mermrender
用于生成序列和UML图的RESTful渲染管道
官网GitHub
Editor.js
JSON格式输出数据的富文本和媒体编辑器
官网GitHub

手机预览