优秀的js函数
来源:互联网 发布:淘宝支付宝登录 编辑:程序博客网 时间:2024/04/28 07:12
一、时间戳格式化。
在ThinkPHP网站上发现此代码,觉得挺实用的,收藏下来。
此js函数类似于PHP的date函数,包括用法也很相像,能够方便的将时间戳转换成日期格式,而且还支持自定义日期的格式。代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
* 和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
(){
return
f.l().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
(){
return
f.F().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;
});
}
代码很实用,能够很方便的将时间戳转换成日期的格式,如:
1
2
date(
'Y-m-d'
,
'1350052653'
);
//很方便的将时间戳转换成了2012-10-11
date(
'Y-m-d H:i:s'
,
'1350052653'
);
//得到的结果是2012-10-12 22:37:33
ref:http://www.xiaoboy.com/detail/1341545047.html
- 优秀的js函数
- 一款优秀的js calendar
- 优秀的图表JS插件
- 优秀js
- 七步写出优秀的JS代码
- 一个优秀的 Node.js 开发者
- 七步写出优秀的JS代码
- 七步写出优秀的JS代码
- 免费而优秀的图表JS插件
- DELPHI中优秀的字符串分割函数
- Delphi中优秀的字符串分割函数
- Dephi 中优秀的字符串分割函数
- Delphi中优秀的字符串分割函数
- 一个优秀的debug函数(宏)
- IE下的优秀js调试工具Companion.JS (转)
- JS特效优秀网站
- js 优秀资源
- Node.js 优秀项目
- Java 连接 Oracle 单例模式
- java Queue容器实现
- 求一个子串在整串中出现的次数。
- android计时器暂停问题
- Failure [INSTALL_FAILED_OLDER_SDK]
- 优秀的js函数
- Bmp 图片格式学习和拆分
- Apache或XAMPP 搭建本地svn 服务器
- 日语约音
- 每日一算法:求m^n的结果,m,n可以很大
- 最大似然估计和最大后验概率
- 《响应式Web设计——html5和css3实战》读书笔记
- ext接受后台数据乱码问题的解决
- Android程序架构目录结构介绍