silly-datetime
Version:
simple datetime formater
119 lines (87 loc) • 2.64 kB
Markdown
# silly-datetime
Simple datetime formater
[](https://nodei.co/npm/silly-datetime/)
[](https://travis-ci.org/csbun/silly-datetime)
[](https://coveralls.io/github/csbun/silly-datetime?branch=master)
## Install
### npm
```sh
npm i silly-datetime --save
```
### bower
```sh
bower install silly-datetime --save
```
## Example
```javascript
var sd = require('silly-datetime');
sd.format(new Date(), 'YYYY-MM-DD HH:mm');
// 2015-07-06 15:10
sd.fromNow(+new Date() - 2000);
// a few seconds ago
```
ES2015:
```javascript
import {
format,
fromNow
} from 'silly-datetime';
format(new Date(), 'YYYY-MM-DD HH:mm'); // 2015-07-06 15:10
fromNow(+new Date() - 2000); // a few seconds ago
```
## Usage
### .format(datetime, format)
Format a Date object to specified format.
- datetime: Date Object
- format: formate string, default to `'YYYY-MM-DD HH:mm:ss'`
Format | Example | Description
------ | ------- | -----------
`YYYY` | `2015` | 4 digit year
`M MM` | `0..12` | Month number
`D DD` | `0..31` | Day of month
`H HH` | `0..23` | 24 hour time
`h hh` | `1..12` | 12 hour time used with `a A`.
`a A` | `am pm` | Post or ante meridiem
`m mm` | `0..59` | Minutes
`s ss` | `0..59` | Seconds
```javascript
sd.format(new Date(), 'YYYY-MM-DD HH:mm');
// 2015-07-06 15:10
```
### .fromNow(datetime)
Time from now. This is sometimes called timeago or relative time.
- datetime: Date Object
```javascript
sd.fromNow(+new Date() - 2000);
// a few seconds ago
```
### .locate(newLocale)
Changing locale globally. By default, silly-datetime comes with English locale strings.
- newLocale: locate string or locate Object
Locate string can be `en` (default) or `zh-cn`;
```javascript
var datetime = +new Date() + 10 * 60 * 1000;
sd.locate('zh-cn')
sd.fromNow(datetime);
// 10分钟内
```
Or just pass an custom locate object with any of the key in the table below:
key | en | zh-cn
-------- | --------------- | ------
`future` | `in %s` | `%s内`
`past` | `%s ago` | `%s前`
`s` | `a few seconds` | `刚刚`
`mm` | `%s minutes` | `%s分钟`
`hh` | `%s hours` | `%s小时`
`dd` | `%s days` | `%s天`
`MM` | `%s months` | `%s月`
`yy` | `%s years` | `%s年`
```javascript
sd.locate({
past: '%s之前',
hh: '%s小時'
});
var datetime = +new Date() + 10 * 60 * 60 * 1000;
sd.fromNow(datetime);
// 10小時之前
```