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

 我来答
百度网友5a1bce2
推荐于2019-08-01 · TA获得超过1836个赞
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

var strtime = '2013-08-30 18:55:49:123';

var date = new Date(strtime); //传入一个时间格式,如果不传入就是获取现在的时间了,这样做不兼容火狐。

// 可以这样做

var arr = strtime.replace(/ |:/g, '-').split('-');
date = new Date(Date.UTC(arr[1], arr[2], arr[3], arr[4], arr[5]));

//三种方式获取:

time1 = date.getTime();

time2 = date.valueOf();

time3 = Date.parse(date);

//三种获取的区别:

第一、第二种:会精确到毫秒 

第三种:只能精确到秒,毫秒将用0来代替 

比如上面代码输出的结果(一眼就能看出区别):

1398250549123

1398250549123

1398250549000

扩展资料:

Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。

Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用。

目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Unix时间戳最多可以使用到格林威治时间2038年01月19日03时14分07秒(二进制:01111111 11111111 11111111 11111111)。

其后一秒,二进制数字会变为10000000 00000000 00000000 00000000,发生溢出错误,造成系统将时间误解为1901年12月13日20时45分52秒。这很可能会引起软件故障,甚至是系统瘫痪。

使用64位二进制数字表示时间的系统(最多可以使用到格林威治时间292,277,026,596年12月04日15时30分08秒)则基本不会遇到这类溢出问题。

参考资料: 百度百科-javascript

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2017-09-19 · TA获得超过4630个赞
知道大有可为答主
回答量:1345
采纳率:50%
帮助的人:1625万
展开全部
以前遇到过一个关于时间戳的问题,为了不被大家鄙视,先说一下概念。

具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 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()函数,你可以得到两个日期的毫秒数,继而转化成秒数、分钟、小时甚至天数,比较两个日期的差值。
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小猫咪的Hjw
2018-05-22 · TA获得超过2.6万个赞
知道小有建树答主
回答量:5
采纳率:100%
帮助的人:5018
展开全部
具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 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()函数,你可以得到两个日期的毫秒数,继而转化成秒数、分钟、小时甚至天数,比较两个日期的差值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ajaxroma
2013-03-08 · TA获得超过386个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:373万
展开全部
var date = new Date(2013,08,30);
alert(date.getTime());
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
亮哥你妹啊
2018-11-19
知道答主
回答量:2
采纳率:0%
帮助的人:2万
展开全部

引入 moment.js

let string = '2013-08-30';
moment(string).toDate().getTime()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式