Salinan kode adalah sebagai berikut:
// Fungsi pemformatan waktu yang sama seperti PHP
// @param {string} format
// @param {int} timestamp waktu untuk memformat default ke waktu saat ini
// @return {string} string waktu yang diformat
Tanggal fungsi (format, stempel waktu) {
var a, jsdate = ((timestamp)? Tanggal baru (timestamp*1000): tanggal baru ());
var pad = fungsi (n, c) {
if ((n = n + "") .length <c) {
mengembalikan array baru (++ c - n.length) .join ("0")+n;
} kalau tidak {
kembali n;
}
};
var txt_weekdays = ["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"];
var txt_ordin = {1: "st", 2: "nd", 3: "rd", 21: "st", 22: "nd", 23: "rd", 31: "st"};
var txt_months = ["", "Januari", "Februari", "March", "April", "Mei", "Juni", "Juli", "Juli", "August", "September", "Oktober", "November", "Desember"];
var f = {
// Hari
d: function () {
return pad (fj (), 2);
},
D: function () {
t = fl (); return t.substr (0,3);
},
j: function () {
return jsdate.getDate ();
},
l: function () {
return txt_weekdays [fw ()];
},
N: function () {
return fw () + 1;
},
S: function () {
return txt_ordin [fj ()]? txt_ordin [fj ()]: 'th';
},
w: function () {
return jsdate.getday ();
},
z: function () {
return (jsdate - tanggal baru (jsdate.getlear () + "/1/1"))/864e5 >> 0;
},
// Pekan
W: function () {
var a = fz (), b = 364 + fl () - a;
var nd2, nd = (tanggal baru (jsdate.getlyear () + "/1/1"). getDay () || 7) - 1;
if (b <= 2 && ((jsdate.getday () || 7) - 1) <= 2 - b) {
kembali 1;
} kalau tidak{
if (a <= 2 && nd> = 4 && a> = (6 - nd)) {
nd2 = tanggal baru (jsdate.getlyear () - 1 + "/12/11");
tanggal pengembalian ("w", math.round (nd2.gettime ()/1000));
} kalau tidak{
return (1 + (nd <= 3? ((a + nd) / 7): (a - (7 - nd)) / 7) >> 0);
}
}
},
// Bulan
F: function () {
return txt_months [fn ()];
},
m: function () {
return pad (fn (), 2);
},
M: function () {
t = ff (); return t.substr (0,3);
},
n: function () {
return jsdate.getMonth () + 1;
},
t: function () {
var n;
if ((n = jsdate.getMonth () + 1) == 2) {
mengembalikan 28 + fl ();
} kalau tidak{
if (n & 1 && n <8 ||! (n & 1) && n> 7) {
kembali 31;
} kalau tidak{
kembali 30;
}
}
},
// Tahun
L: function () {
var y = fy ();
return (! (y & 3) && (y % 1e2 ||! (y % 4e2)))? 1: 0;
},
// o belum didukung
Y: function () {
return jsdate.getlyear ();
},
y: function () {
return (jsdate.getlyear () + "") .slice (2);
},
// Waktu
A: function () {
return jsdate.getHours ()> 11? "PM": "AM";
},
A: function () {
return fa (). Touppercase ();
},
B: function () {
// Peter Paul Koch:
var off = (jsdate.getTimezoneOffset () + 60)*60;
var teseconds = (jsdate.getHours () * 3600) +
(jsdate.getMinutes () * 60) +
jsdate.getSeconds () + off;
var beat = math.floor (TheSeconds/86.4);
if (beat> 1000) beat -= 1000;
if (beat <0) beat += 1000;
if ((string (beat)). length == 1) beat = "00"+beat;
if ((string (beat)). length == 2) beat = "0"+beat;
ketukan kembali;
},
g: function () {
return jsdate.getHours () % 12 || 12;
},
G: function () {
return jsdate.getHours ();
},
h: function () {
return pad (fg (), 2);
},
H: function () {
return pad (jsdate.getHours (), 2);
},
i: function () {
return pad (jsdate.getMinutes (), 2);
},
s: function () {
return pad (jsdate.getSeconds (), 2);
},
// kamu belum didukung
// zona waktu
// e belum didukung
// Saya belum mendukung
O: function () {
var t = pad (math.abs (jsdate.getTimeZoneOffset ()/60*100), 4);
if (jsdate.getTimezoneoffset ()> 0) t = "-" + t; lain t = " +" + t;
mengembalikan t;
},
P: function () {
var o = fo ();
return (o.substr (0, 3) + ":" + o.substr (3, 2));
},
// T belum didukung
// z belum didukung
// tanggal/waktu penuh
c: function () {
return fy () + "-" + fm () + "-" + fd () + "t" + fh () + ":" + fi () + ":" + fs () + fp ();
},
// r belum didukung
U: function () {
return math.round (jsdate.getTime ()/1000);
}
};
return format.replace (/[//]? ([a-za-z])/g, function (t, s) {
if (t! = s) {
// melarikan diri
ret = s;
} lain jika (f [s]) {
// ada fungsi tanggal
ret = f [s] ();
} kalau tidak{
// tidak ada yang istimewa
ret = s;
}
kembali kembali;
});
}