一、Excel 时间戳和时间格式的互相转换

Excel时间戳和时间格式的互相转换

1、时间戳转换为正常格式:

时间戳转换工具 Excel 时间戳和时间格式的互相转换

把B列的格式设置为时间格式。

在B1中输入公式:=(A1+8*3600)/86400+70*365+19,按下enter键

时间戳转换工具 Excel 时间戳和时间格式的互相转换

(*秒单位时间戳毫秒单位时间戳记得除以1000)

选中B1,双击左下角的+,即可把一列的时间戳转换为时间格式。

2、正常时间格式转换为时间戳格式:

把C列的格式设置为普通格式(即不用设置)。

把公式变为:=(B1-70*365-19)*86400-8*3600,按下enter键

选中C1,双击左下角的+,即可把一列的时间戳转换为时间格式。

二、js时间戳怎么转成日期格式

调用 getSmpFormatDateByLong(long,true)

long是时间戳

true表示获取到的结果是 yyyy-MM-dd hh:mm:ss格式

false则得到的事 yyyy-MM-dd格式

Date.prototype.format=function(format){

varo={

"M+":this.getMonth()+1,

"d+":this.getDate(),

"h+":this.getHours(),

"m+":this.getMinutes(),

"s+":this.getSeconds(),

"q+":Math.floor((this.getMonth()+3)/3),

"S":this.getMilliseconds()

}

if(/(y+)/.test(format)){

format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4-RegExp.$1.length));

}

for(varkino){

if(newRegExp("("+k+")").test(format)){

format=format.replace(RegExp.$1,RegExp.$1.length==1?o[k]:("00"+o[k]).substr((""+o[k]).length));

}

}

returnformat;

}

/**

*转换日期对象为日期字符串

*@paramdate日期对象

*@paramisFull是否为完整的日期数据,

*为true时,格式如"2000-03-0501:05:04"

*为false时,格式如"2000-03-05"

*@return符合要求的日期字符串

*/

functiongetSmpFormatDate(date,isFull){

varpattern="";

if(isFull==true||isFull==undefined){

pattern="yyyy-MM-ddhh:mm:ss";

}else{

pattern="yyyy-MM-dd";

}

returngetFormatDate(date,pattern);

}

/**

*转换当前日期对象为日期字符串

*@paramdate日期对象

*@paramisFull是否为完整的日期数据,

*为true时,格式如"2000-03-0501:05:04"

*为false时,格式如"2000-03-05"

*@return符合要求的日期字符串

*/

functiongetSmpFormatNowDate(isFull){

returngetSmpFormatDate(newDate(),isFull);

}

/**

*转换long值为日期字符串

*@paramllong值

*@paramisFull是否为完整的日期数据,

*为true时,格式如"2000-03-0501:05:04"

*为false时,格式如"2000-03-05"

*@return符合要求的日期字符串

*/

functiongetSmpFormatDateByLong(l,isFull){

returngetSmpFormatDate(newDate(l),isFull);

}

/**

*转换long值为日期字符串

*@paramllong值

*@parampattern格式字符串,例如:yyyy-MM-ddhh:mm:ss

*@return符合要求的日期字符串

*/

functiongetFormatDateByLong(l,pattern){

returngetFormatDate(newDate(l),pattern);

}

/**

*转换日期对象为日期字符串

*@paramllong值

*@parampattern格式字符串,例如:yyyy-MM-ddhh:mm:ss

*@return符合要求的日期字符串

*/

functiongetFormatDate(date,pattern){

if(date==undefined){

date=newDate();

}

if(pattern==undefined){

pattern="yyyy-MM-ddhh:mm:ss";

}

returndate.format(pattern);

}

//alert(getSmpFormatDateByLong(1279829423000,false));

三、如何实现时间戳转换

以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念。

具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 1970年 1月 1日(00:00:00 GMT)至当前时间的总秒数”。

按这个定义,编程语言中倒是有一种类似的函数,getTime(),但这个函数返回的是自1970年1月1日到当前时间的总毫秒数,而不是总秒数。

在js中,将一个字符转化成Date型也不是什么难事:

var str='2013-08-30';//日期字符串

str= str.replace(/-/g,'/');//将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串

var date= new Date(str);//构造一个日期型数据,值为传入的字符串

在上面,new Date(str)构造了一个日期,参数str至少要提供年月日三部分,也就是形如“2013/03/08”的字符串,不能是"2013/03",否则将得到一个NaN。此时构造出来的时间是:2013/03/08 00:00:00。同时你还可以传入小时、分钟和秒数,但不能只传入小时,比如“2013/03/08 17”,这样的参数同样会得到一个NaN。参数可以是“2013/03/08 17:20”或者“2013/03/08 17:20:05”,这样都可以得到正确的时间,其中如果秒数没给出,则默认为0。

此时得到的是日期型数据,如果要得到上面所谓的时间戳,可以这样:

var time= date.getTime();

这样得到的是一个数值,表示的是从1970年1月1日0点0分0秒到date那一刻的毫秒数,如果把这个数字除以1000,就得到了秒数,同样继续除以60,得到分钟,再除以60得到小时等等。

提示,通过这个getTime()函数,你可以得到两个日期的毫秒数,继而转化成秒数、分钟、小时甚至天数,比较两个日期的差值。