s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳

Posted 假_行僧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳相关的知识,希望对你有一定的参考价值。

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

具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 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()函数,你可以得到两个日期的毫秒数,继而转化成秒数、分钟、小时甚至天数,比较两个日期的差值。

function get_unix_time(dateStr)
{
    dateStr = dateStr.replace(‘年‘,‘-‘);
    dateStr = dateStr.replace(‘月‘,‘-‘);
    dateStr = dateStr.replace(‘日‘,‘-‘);
    var newstr = dateStr.replace(/-/g,‘/‘); 
    var date =  new Date(newstr); 
    var time_str = date.getTime().toString();
    return time_str.substr(0, 10);
}
 
get_unix_time("2015年04月07日");

以上是关于s 中日期 转换成时间戳 例如2013-08-30 转换为时间戳的主要内容,如果未能解决你的问题,请参考以下文章

js中怎么把只有年月的日期转为时间戳

MySQL中日期和时间戳互相转换的函数和方法

mysql 时间戳的转换

vb 时间戳转换成时间

时间戳转换成日期展示的方法

php怎么将指定日期转换为时间戳