[go: up one dir, main page]

Skip to content

uiwjs/date-formatter

Repository files navigation

Formatter

GitHub Actions Build formatter Coverage Status npm downloads

Get a formatted date.

Demo preview in CodePen Demo preview in CodeSandbox

Install

$ npm install --save @uiw/formatter

Usage

import formatter from '@uiw/formatter';

console.log(formatter());
//=> 2019-03-07

console.log(formatter.utc());
//=> 2019-03-07

console.log(formatter('YYYY年MM月DD日', new Date(2019, 3, 7)))
//=> 2019年04月07日
console.log(formatter('YYYY年MM月DD日 16:30:29', new Date(2019, 3, 7, 16, 30, 29)))
//=> 2019年04月07日 16:30:29
console.log(formatter('YYYY年MM月DD日 HH:mm-ss', new Date(2019, 3, 7, 16, 30, 29)))
//=> 2019年04月07日 16:30-29
console.log(formatter('YYYY/MM/DD HH:mm:ss', new Date(2019, 3, 7, 16, 30, 29)))
//=> 2019年04月07日 16:30-29
console.log(formatter('YYYY/MM/DD HH:mm:ss', new Date(2019, 3, 7, 16, 30, 29)))
//=> 2019/04/07 16:30:29


console.log(formatter('YYYY'));
//=> 2019
console.log(formatter.utc('YYYY'));
//=> 2019

Or manually download and link formatter.js in your HTML, It can also be downloaded via UNPKG:

<div id="date"></div>
<script src="https://unpkg.com/@uiw/formatter/dist/formatter.min.js"></script>
<script>
  document.getElementById('date').innerHTML = formatter();
</script>

The above example preview.

timeZoneConverter

Resolve changes in time zone, resulting in inaccurate display server time

function timeZoneConverter(date, timeZone) {
  const oldDate = new Date(date);
  const newDate = new Date();
  const stamp = oldDate.getTime();
  if (!timeZone) return oldDate;
  return (isNaN(timeZone) && !timeZone)
    ? oldDate :
    new Date(stamp + (newDate.getTimezoneOffset() * 60 * 1000) + (timeZone * 60 * 60 * 1000));
}
timeZoneConverter(new Date(1434701732*1000), 8)

API

formatter(rule: String, date: Date, utc: Boolean);
formatter.utc(rule: String, date: Date);

Supported Patterns

rule Description 中文说明 E.g
YYYY full year 2019
MM month 02
DD day 05
HH hours 12
mm minutes 分钟 59
ss seconds 09
ms milliseconds 毫秒 532