76 lines
2.1 KiB
Text
76 lines
2.1 KiB
Text
|
#!/usr/bin/env node
|
||
|
/**
|
||
|
* dateformat <https://github.com/felixge/node-dateformat>
|
||
|
*
|
||
|
* Copyright (c) 2014 Charlike Mike Reagent (cli), contributors.
|
||
|
* Released under the MIT license.
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
/**
|
||
|
* Module dependencies.
|
||
|
*/
|
||
|
|
||
|
var dateFormat = require('../lib/dateformat');
|
||
|
var meow = require('meow');
|
||
|
var stdin = require('get-stdin');
|
||
|
|
||
|
var cli = meow({
|
||
|
pkg: '../package.json',
|
||
|
help: [
|
||
|
'Options',
|
||
|
' --help Show this help',
|
||
|
' --version Current version of package',
|
||
|
' -d | --date Date that want to format (Date object as Number or String)',
|
||
|
' -m | --mask Mask that will use to format the date',
|
||
|
' -u | --utc Convert local time to UTC time or use `UTC:` prefix in mask',
|
||
|
' -g | --gmt You can use `GMT:` prefix in mask',
|
||
|
'',
|
||
|
'Usage',
|
||
|
' dateformat [date] [mask]',
|
||
|
' dateformat "Nov 26 2014" "fullDate"',
|
||
|
' dateformat 1416985417095 "dddd, mmmm dS, yyyy, h:MM:ss TT"',
|
||
|
' dateformat 1315361943159 "W"',
|
||
|
' dateformat "UTC:h:MM:ss TT Z"',
|
||
|
' dateformat "longTime" true',
|
||
|
' dateformat "longTime" false true',
|
||
|
' dateformat "Jun 9 2007" "fullDate" true',
|
||
|
' date +%s | dateformat',
|
||
|
''
|
||
|
].join('\n')
|
||
|
})
|
||
|
|
||
|
var date = cli.input[0] || cli.flags.d || cli.flags.date || Date.now();
|
||
|
var mask = cli.input[1] || cli.flags.m || cli.flags.mask || dateFormat.masks.default;
|
||
|
var utc = cli.input[2] || cli.flags.u || cli.flags.utc || false;
|
||
|
var gmt = cli.input[3] || cli.flags.g || cli.flags.gmt || false;
|
||
|
|
||
|
utc = utc === 'true' ? true : false;
|
||
|
gmt = gmt === 'true' ? true : false;
|
||
|
|
||
|
if (!cli.input.length) {
|
||
|
stdin(function(date) {
|
||
|
console.log(dateFormat(date, dateFormat.masks.default, utc, gmt));
|
||
|
});
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (cli.input.length === 1 && date) {
|
||
|
mask = date;
|
||
|
date = Date.now();
|
||
|
console.log(dateFormat(date, mask, utc, gmt));
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if (cli.input.length >= 2 && date && mask) {
|
||
|
if (mask === 'true' || mask === 'false') {
|
||
|
utc = mask === 'true' ? true : false;
|
||
|
gmt = !utc;
|
||
|
mask = date
|
||
|
date = Date.now();
|
||
|
}
|
||
|
console.log(dateFormat(date, mask, utc, gmt));
|
||
|
return;
|
||
|
}
|