JS version of date function (same as PHP's date function)_JavaScript
May 16, 2016 pm 04:48 PM// 和PHP一样的时间戳格式化函数
// @param {string} format 格式
// @param {int} timestamp 要格式化的时间 默认为当前时间
// @return {string} 格式化的时间字符串
function date ( format, timestamp ) {
var a, jsdate=((timestamp) ? new Date(timestamp*1000) : new Date());
var pad = function(n, c){
if( (n = n + "").length < c ) {
return new Array(++c - n.length).join("0") + n;
} else {
return n;
}
};
var txt_weekdays = ["Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday"];
var txt_ordin = {1:"st",2:"nd",3:"rd",21:"st",22:"nd",23:"rd",31:"st"};
var txt_months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var f = {
// Day
d: function(){
return pad(f.j(), 2);
},
D: function(){
t = f.l(); return t.substr(0,3);
},
j: function(){
return jsdate.getDate();
},
l: function(){
return txt_weekdays[f.w()];
},
N: function(){
return f.w() + 1;
},
S: function(){
return txt_ordin[f.j()] ? txt_ordin[f.j()] : 'th';
},
w: function(){
return jsdate.getDay();
},
z: function(){
return (jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5 >> 0;
},
// Week
W: function(){
var a = f.z(), b = 364 + f.L() - a;
var nd2, nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1;
if(b <= 2 && ((jsdate.getDay() || 7) - 1) <= 2 - b){
return 1;
} else{
if(a <= 2 && nd >= 4 && a >= (6 - nd)){
nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31");
return date("W", Math.round(nd2.getTime()/1000));
} else{
return (1 + (nd <= 3 ? ((a + nd) / 7) : (a - (7 - nd)) / 7) >> 0);
}
}
},
// Month
F: function(){
return txt_months[f.n()];
},
m: function(){
return pad(f.n(), 2);
},
M: function(){
t = f.F(); return t.substr(0,3);
},
n: function(){
return jsdate.getMonth() + 1;
},
t: function(){
var n;
if( (n = jsdate.getMonth() + 1) == 2 ){
return 28 + f.L();
} else{
if( n & 1 && n < 8 || !(n & 1) && n > 7 ){
return 31;
} else{
return 30;
}
}
},
// Year
L: function(){
var y = f.Y();
return (!(y & 3) && (y % 1e2 || !(y % 4e2))) ? 1 : 0;
},
//o not supported yet
Y: function(){
return jsdate.getFullYear();
},
y: function(){
return (jsdate.getFullYear() + "").slice(2);
},
// Time
a: function(){
return jsdate.getHours() > 11 ? "pm" : "am";
},
A: function(){
return f.a().toUpperCase();
},
B: function(){
// peter paul koch:
var off = (jsdate.getTimezoneOffset() + 60)*60;
var theSeconds = (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;
return beat;
},
g: function(){
return jsdate.getHours() % 12 || 12;
},
G: function(){
return jsdate.getHours();
},
h: function(){
return pad(f.g(), 2);
},
H: function(){
return pad(jsdate.getHours(), 2);
},
i: function(){
return pad(jsdate.getMinutes(), 2);
},
s: function(){
return pad(jsdate.getSeconds(), 2);
},
//u not supported yet
// Timezone
//e not supported yet
//I not supported yet
O: function(){
var t = pad(Math.abs(jsdate.getTimezoneOffset()/60*100), 4);
if (jsdate.getTimezoneOffset() > 0) t = "-" t; else t = " " t;
return t;
},
P: function(){
var O = f.O();
return (O.substr(0, 3) ":" O.substr(3, 2));
},
//T not supported yet
//Z not supported yet
// Full Date/Time
c: function(){
return f.Y() "-" f.m() "-" f.d() "T" f.h() ":" f.i() ":" f.s() f.P();
},
//r not supported yet
U: function(){
return Math.round(jsdate.getTime()/1000);
}
};
return format.replace(/[\]?([a-zA-Z])/g, function(t, s){
if( t!=s ){
// escaped
ret = s;
} else if( f[s] ){
// a date function exists
ret = f[s]();
} else{
// nothing special
ret = s;
}
return ret;
});
}

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to use JS and Baidu Maps to implement map pan function

Recommended: Excellent JS open source face detection and recognition project

Essential tools for stock analysis: Learn the steps to draw candle charts with PHP and JS

PHP and JS Development Tips: Master the Method of Drawing Stock Candle Charts

How to create a stock candlestick chart using PHP and JS

How to use JS and Baidu Maps to implement map polygon drawing function

How to use JS and Baidu Map to implement map click event processing function
