function
time() {
return
Math.floor(
new
Date().getTime() / 1000);
}
function
mdate($time) {
var
$text =
''
;
var
$t = time() - parseInt($time);
if
($t == 0) {
return
'刚刚'
;
}
if
($t < 60) {
return
$t +
'秒前'
;
}
if
($t < 60 * 60) {
return
Math.floor($t / 60) +
'分钟前'
;
}
if
($t < 60 * 60 * 24) {
return
Math.floor($t / (60 * 60)) +
'小时前'
;
}
if
($t < 60 * 60 * 24 * 2) {
return
'昨天 '
+ date(
'H:i'
, $time);
}
if
($t < 60 * 60 * 24 * 3) {
return
'前天 '
+ date(
'H:i'
, $time);
}
if
($t < 60 * 60 * 24 * 30) {
return
date(
'm月d日 H:i'
, $time);
}
if
($t < 60 * 60 * 24 * 365) {
return
date(
'm月d日'
, $time);
}
else
{
return
date(
'Y年m月d日'
, $time);
}
}
function
date(format, timestamp) {
var
that =
this
, jsdate, f, formatChr = /\?([a-z])/gi, formatChrCb, _pad =
function
(n, c) {
if
((n = n +
""
).length < c) {
return
new
Array((++c) - n.length).join(
"0"
) + n;
}
else
{
return
n;
}
}, txt_words = [
"Sun"
,
"Mon"
,
"Tues"
,
"Wednes"
,
"Thurs"
,
"Fri"
,
"Satur"
,
"January"
,
"February"
,
"March"
,
"April"
,
"May"
,
"June"
,
"July"
,
"August"
,
"September"
,
"October"
,
"November"
,
"December"
], txt_ordin = {1:
"st"
, 2:
"nd"
, 3:
"rd"
, 21:
"st"
, 22:
"nd"
, 23:
"rd"
, 31:
"st"
};
formatChrCb =
function
(t, s) {
return
f[t] ? f[t]() : s;
};
f = {d:
function
() {
return
_pad(f.j(), 2);
}, D:
function
() {
return
f.l().slice(0, 3);
}, j:
function
() {
return
jsdate.getDate();
}, l:
function
() {
return
txt_words[f.w()] +
'day'
;
}, N:
function
() {
return
f.w() || 7;
}, S:
function
() {
return
txt_ordin[f.j()] ||
'th'
;
}, w:
function
() {
return
jsdate.getDay();
}, z:
function
() {
var
a =
new
Date(f.Y(), f.n() - 1, f.j()), b =
new
Date(f.Y(), 0, 1);
return
Math.round((a - b) / 864e5) + 1;
}, W:
function
() {
var
a =
new
Date(f.Y(), f.n() - 1, f.j() - f.N() + 3), b =
new
Date(a.getFullYear(), 0, 4);
return
1 + Math.round((a - b) / 864e5 / 7);
}, F:
function
() {
return
txt_words[6 + f.n()];
}, m:
function
() {
return
_pad(f.n(), 2);
}, M:
function
() {
return
f.F().slice(0, 3);
}, n:
function
() {
return
jsdate.getMonth() + 1;
}, t:
function
() {
return
(
new
Date(f.Y(), f.n(), 0)).getDate();
}, L:
function
() {
var
y = f.Y(), a = y & 3, b = y % 4e2, c = y % 1e2;
return
0 + (!a && (c || !b));
}, o:
function
() {
var
n = f.n(), W = f.W(), Y = f.Y();
return
Y + (n === 12 && W < 9 ? -1 : n === 1 && W > 9);
}, Y:
function
() {
return
jsdate.getFullYear();
}, y:
function
() {
return
(f.Y() +
""
).slice(-2);
}, a:
function
() {
return
jsdate.getHours() > 11 ?
"pm"
:
"am"
;
}, A:
function
() {
return
f.a().toUpperCase();
}, B:
function
() {
var
H = jsdate.getUTCHours() * 36e2, i = jsdate.getUTCMinutes() * 60, s = jsdate.getUTCSeconds();
return
_pad(Math.floor((H + i + s + 36e2) / 86.4) % 1e3, 3);
}, g:
function
() {
return
f.G() % 12 || 12;
}, G:
function
() {
return
jsdate.getHours();
}, h:
function
() {
return
_pad(f.g(), 2);
}, H:
function
() {
return
_pad(f.G(), 2);
}, i:
function
() {
return
_pad(jsdate.getMinutes(), 2);
}, s:
function
() {
return
_pad(jsdate.getSeconds(), 2);
}, u:
function
() {
return
_pad(jsdate.getMilliseconds() * 1000, 6);
}, e:
function
() {
return
'UTC'
;
}, I:
function
() {
var
a =
new
Date(f.Y(), 0), c = Date.UTC(f.Y(), 0), b =
new
Date(f.Y(), 6), d = Date.UTC(f.Y(), 6);
return
0 + ((a - c) !== (b - d));
}, O:
function
() {
var
a = jsdate.getTimezoneOffset();
return
(a > 0 ?
"-"
:
"+"
) + _pad(Math.abs(a / 60 * 100), 4);
}, P:
function
() {
var
O = f.O();
return
(O.substr(0, 3) +
":"
+ O.substr(3, 2));
}, T:
function
() {
return
'UTC'
;
}, Z:
function
() {
return
-jsdate.getTimezoneOffset() * 60;
}, c:
function
() {
return
'Y-m-d\Th:i:sP'
.replace(formatChr, formatChrCb);
}, r:
function
() {
return
'D, d M Y H:i:s O'
.replace(formatChr, formatChrCb);
}, U:
function
() {
return
jsdate.getTime() / 1000 | 0;
}};
this
.date =
function
(format, timestamp) {
that =
this
;
jsdate = ((
typeof
timestamp ===
'undefined'
) ?
new
Date() : (timestamp
instanceof
Date) ?
new
Date(timestamp) :
new
Date(timestamp * 1000));
return
format.replace(formatChr, formatChrCb);
};
return
this
.date(format, timestamp);
}
使用方式
mdate(time());