Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
org.webjars.npm:date-and-time
Advanced tools
Since JS modules are usually used in combination, we think trying to keep the size of each module small is important. This date time utility is one of the modules aiming for minimal and efficient.
via npm:
$ npm install date-and-time --save
via Bower (DEPRECATED):
$ bower install date-and-time
directly:
<script src="date-and-time.min.js"></script>
parse()
Node.js:
let date = require('date-and-time');
babelify:
import date from './date-and-time';
AMD:
require(['date-and-time'], function (date) {
});
the browser:
window.date; // global object
let now = new Date();
date.format(now, 'YYYY/MM/DD HH:mm:ss'); // => '2015/01/02 23:14:05'
date.format(now, 'ddd MMM DD YYYY'); // => 'Fri Jan 02 2015'
date.format(now, 'hh:mm A [GMT]Z'); // => '11:14 p.m. GMT-0800'
date.format(now, 'hh:mm A [GMT]Z', true); // => '07:14 a.m. GMT+0000'
token | meaning | example |
---|---|---|
YYYY | year | 0999, 2015 |
YY | year | 15, 99 |
Y | year | 999, 2015 |
MMMM | month | January, December |
MMM | month | Jan, Dec |
MM | month | 01, 12 |
M | month | 1, 12 |
DD | day | 02, 31 |
D | day | 2, 31 |
dddd | day of week | Friday, Sunday |
ddd | day of week | Fri, Sun |
dd | day of week | Fr, Su |
HH | hour-24 | 23, 08 |
H | hour-24 | 23, 8 |
A | meridiem | a.m., p.m. |
hh | hour-12 | 11, 08 |
h | hour-12 | 11, 8 |
mm | minute | 14, 07 |
m | minute | 14, 7 |
ss | second | 05, 10 |
s | second | 5, 10 |
SSS | millisecond | 753, 022 |
SS | millisecond | 75, 02 |
S | millisecond | 7, 0 |
Z | timezone | +0100, -0800 |
[...]
in the formatString
will be a comment:
date.format(new Date(), 'DD-[MM]-YYYY'); // => '02-MM-2015'
date.format(new Date(), '[DD-[MM]-YYYY]'); // => 'DD-[MM]-YYYY'
date.parse('2015/01/02 23:14:05', 'YYYY/MM/DD HH:mm:ss'); // => date object
date.parse('02-01-2015', 'DD-MM-YYYY'); // => date object
date.parse('11:14:05 p.m.', 'hh:mm:ss A'); // => (Jan 1 1970 23:14:05 GMT-0800)
date.parse('11:14:05 p.m.', 'hh:mm:ss A', true); // => (Jan 1 1970 15:14:05 GMT-0800)
date.parse('Jam 1 2017', 'MMM D YYYY'); // => NaN
date.parse('Feb 29 2016', 'MMM D YYYY'); // => date object
date.parse('Feb 29 2017', 'MMM D YYYY'); // => NaN
token | meaning | example |
---|---|---|
YYYY | year | 2015, 1999 |
YY | year | 15, 99 |
MMMM | month | January, December |
MMM | month | Jan, Dec |
MM | month | 01, 12 |
M | month | 1, 12 |
DD | day | 02, 31 |
D | day | 2, 31 |
HH | hour-24 | 23, 08 |
H | hour-24 | 23, 8 |
hh | hour-12 | 11, 08 |
h | hour-12 | 11, 8 |
A | meridiem | a.m., p.m. |
mm | minute | 14, 07 |
m | minute | 14, 7 |
ss | second | 05, 10 |
s | second | 5, 10 |
SSS | millisecond | 753, 022 |
SS | millisecond | 75, 02 |
S | millisecond | 7, 0 |
The minimum year that can be parsed is year 100, the maximum year is year 9999. Year 69 or less are translated into 2000s, year 70 or more and year 99 or less are translated into 1900s.
date.parse('Dec 31 100', 'MMM d YYYY'); // => (Dec 31 100)
date.parse('Dec 31 9999', 'MMM d YYYY'); // => (Dec 31 9999)
date.parse('Dec 31 0', 'MMM d YYYY'); // => (Dec 31 2000)
date.parse('Dec 31 69', 'MMM d YYYY'); // => (Dec 31 2069)
date.parse('Dec 31 70', 'MMM d YYYY'); // => (Dec 31 1970)
date.parse('Dec 31 99', 'MMM d YYYY'); // => (Dec 31 1999)
When using hh
or h
(hour-12), need to use together A
(meridiem).
date.isValid('2015/01/02 23:14:05', 'YYYY/MM/DD HH:mm:ss'); // => true
date.isValid('29-02-2015', 'DD-MM-YYYY'); // => false
The formatString
you can set is the same as the parse
function's.
let now = new Date();
let next_year = date.addYears(now, 1); // => Date object
let now = new Date();
let next_month = date.addMonths(now, 1); // => Date object
let now = new Date();
let yesterday = date.addDays(now, -1); // => Date object
let now = new Date();
let an_hour_ago = date.addHours(now, -1); // => Date object
let now = new Date();
let two_minutes_later = date.addMinutes(now, 2); // => Date object
let now = new Date();
let three_seconds_ago = date.addSeconds(now, -3); // => Date object
let now = new Date();
let a_millisecond_later = date.addMilliseconds(now, 1); // => Date object
let today = new Date(2015, 0, 2);
let yesterday = new Date(2015, 0, 1);
date.subtract(today, yesterday).toDays(); // => 1 = today - yesterday
date.subtract(today, yesterday).toHours(); // => 24
date.subtract(today, yesterday).toMinutes(); // => 1440
date.subtract(today, yesterday).toSeconds(); // => 86400
date.subtract(today, yesterday).toMilliseconds(); // => 86400000
let date1 = new Date(2015, 0, 2);
let date2 = new Date(2012, 0, 2);
date.isLeapYear(date1); // => false
date.isLeapYear(date2); // => true
let date1 = new Date(2017, 0, 2, 0); // Jan 2 2017 00:00:00
let date2 = new Date(2017, 0, 2, 23, 59); // Jan 2 2017 23:59:00
let date3 = new Date(2017, 0, 1, 23, 59); // Jan 1 2017 23:59:00
date.isSameDay(date1, date2); // => true
date.isSameDay(date1, date3); // => false
It supports the following languages for now:
Month, day of week, and meridiem are displayed in English by default. If you want to use other languages, can switch to them as follows:
Node.js:
let date = require('date-and-time');
date.locale('fr'); // French
date.format(new Date(), 'dddd D MMMM'); // => 'lundi 11 janvier'
babelify:
import date from './date-and-time';
import './locale/it';
date.locale('it'); // Italian
date.format(new Date(), 'dddd D MMMM'); // => 'Lunedì 11 gennaio'
AMD:
require(['date-and-time', 'locale/de'], function (date) {
date.locale('de'); // German
date.format(new Date(), 'dddd, D. MMMM'); // => 'Montag, 11. Januar'
});
the browser:
<script src="date-and-time.min.js"></script>
<script src="locale/zh-cn.js"></script>
<script>
date.locale('zh-cn'); // Chinese
date.format(new Date(), 'MMMD日dddd'); // => '1月11日星期一'
</script>
You can not only switch to other languages, but can customize them as you want:
let now = new Date();
date.format(now, 'h:m A'); // => '12:34 p.m.'
date.setLocales('en', {
A: ['AM', 'PM']
});
date.format(now, 'h:m A'); // => '12:34 PM'
Chrome, Firefox, Safari, Opera, and Internet Explorer 6+.
MIT
FAQs
WebJar for date-and-time
We found that org.webjars.npm:date-and-time demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.