strftime-js

Stars
25

strftime.js

This is a strftime.js. Yet another Date.prototype.strftime library.

USAGE

<script type="text/javascript" src="strftime.js"></script>
<script type="text/javascript">
    document.write( (new Date).strftime('%Y-%m-%dT%H:%M:%S') );
</script>

FUNCTION MANUAL

Date.prototype.strftime('%Y-%m-%d')
Date.prototype.strftime('%Y-%m-%d(%a)', 'ja')
Date.prototype.strftime('%Y-%m-%d(%a)', 'en')

You can specify the locale by second parameter.

FORMATS

%a
abbreviated weekday name according to the current locale

%A
full weekday name according to the current locale

%b
abbreviated month name according to the current locale

%B
full month name according to the current locale

%c
preferred date and time representation for the current locale

%C
century number (the year divided by 100 and truncated to an integer, range 00 to 99)

%d
day of the month as a decimal number (range 01 to 31)

%D
same as %m/%d/%y

%e
day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')

%F
same as %Y-%m-%d (ISO 8601 date format)

%h
same as %b

%H
hour as a decimal number using a 24-hour clock (range 00 to 23)

%I
hour as a decimal number using a 12-hour clock (range 01 to 12)

%k
hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)

%l
hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.)

%m
month as a decimal number (range 01 to 12)

%M
minute as a decimal number

%n
newline character

%p
either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale

%P
like %p, but lower case

%r
time in a.m. and p.m. notation equal to %I:%M:%S %p

%R
time in 24 hour notation equal to %H:%M

%s
number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC

%S
second as a decimal number

%t
tab character

%T
current time, equal to %H:%M:%S

%u
weekday as a decimal number [1,7], with 1 representing Monday

%w
day of the week as a decimal, Sunday being 0

%x
preferred date representation for the current locale without the time

%X
preferred time representation for the current locale without the date

%y
year as a decimal number without a century (range 00 to 99)

%Y
year as a decimal number including the century

%z
numerical time zone representation

%%
a literal `%' character

HOW CAN I ADD MY OWN LOCALE?

You can add your locale by following:

Date.prototype.strftime.locales['de'] = {
    B: ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"],
    b: ["Jan", "Feb", "Mär", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"],
    A: ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"],
    a: ["Mo\.", "Di\.", "Mi\.", "Do\.", "Fr\.", "Sa\.", "So\."]
};

HOW CAN I SET MY OWN LOCALE AS DEFAULT?

You can call following method:

Date.prototype.strftime.setDefaultLocale('ja');

LICENSE

It's based on Daniel Rench's Date.prototype.strftime library in http://dren.ch/strftime/. He releases original version in Public Domain. I also release this modificated code in Public Domain.