您的位置 首页 php

js 时间戳转为日期格式

js需要把时间戳转为为普通格式,一般的情况下可能用不到的,但是我在做计时钟时php给的是 时间戳这样我们可以方便计划时分秒。

下面先来看第一种吧

代码如下复制代码

<script>

function getLocalTime(nS) {

return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:d{1,2}$/,’ ‘);

}

alert (getLocalTime(1293072805));

</script>

结果是

2010年12月23日 10:53

第二种

代码如下复制代码

<script>

function getLocalTime(nS) {

return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17)}

alert(getLocalTime(1293072805));

</script>

如果你想得到这样格式的怎么办呢?

2010-10-20 10:00:00

看下面代码吧

代码如下复制代码

<script>

function getLocalTime(nS) {

return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, “-“).replace(/日/g, ” “);

}

alert(getLocalTime(1177824835));

</script>

也可以这样写的

代码如下复制代码

function formatDate(now) {

var year=now.getYear();

var month=now.getMonth()+1;

var date=now.getDate();

var hour=now.getHours();

var minute=now.getMinutes();

var second=now.getSeconds();

return year+”-“+month+”-“+date+” “+hour+”:”+minute+”:”+second;

}

var d=new Date(1230999938);

alert(formatDate(d)); 好了问题解决

需要注意的是

不要把 字符串 中的Date(这样的字符也传进去,要先处理一下,这样很方便 就能处理的

可以使用replace方法

如下:

代码如下复制代码replace(“/Date(“,””).replace(“)/”,””);

完整实例

代码如下复制代码/**

* 和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;

});

}

调用方法 能够很方便的将时间戳转换成日期的格式,如:

代码如下复制代码date(‘Y-m-d’,’1350052653′);//很方便的将时间戳转换成了2012-10-11

date(‘Y-m-d H:i:s’,’1350052653′);//得到的结果是2012-10-12 22:37:33

文章来源:智云一二三科技

文章标题:js 时间戳转为日期格式

文章地址:https://www.zhihuclub.com/150601.shtml

关于作者: 智云科技

热门文章

网站地图