前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?

javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?

作者头像
菩提树下的杨过
发布2018-01-22 20:03:42
5.4K0
发布2018-01-22 20:03:42
举报

因近日一个项目中要在客户端判断用户输入的日期字符串的大小,所以对日期字符串转日期对象研究了一下,测试代码如下:

代码语言:js
复制
<script.?type="text/javascript">


 var?sDate1?= "2008/04/02";


 var?sDate2?= "2005/03/01";



 var?oDate1?= new?Date(sDate1);


 var?oDate2?= new?Date(sDate2);



 if?(oDate1?>?oDate2)//输出?2008/04/02?大于?2005/03/01



 ...{


??document.write(sDate1?+ "?大于?" +?sDate2);


?}


 else



 ...{


??document.write(sDate1?+ "?小于(等于)?" +?sDate2);


?}



?document.write("<br/>" + new?Date("2000/01/02"));//输出Sun?Jan?2?00:00:00?UTC+0800?2000


?document.write("<br/>" +?Date("2000/01/02"));//输出Wed?Dec?05?10:18:33?2007


?document.write("<br/>" + new?Date("2000-01-02"));//输出NaN


?document.write("<br/>" +?Date("2000-01-02"));//输出Wed?Dec?05?10:18:33?2007


</script>

结论: Date(日期)型字符串,要想正确的转换为Date(日期)对象,必须用new Date(str)方式,直接用Date(str)强制转换将得到错误结果,另外转换时Date字符串的格式为"年/月/日"(也许还有其它写法,这里只测试了yyyy/mm/dd确实是可行的),而另一种很常见的"年-月-日"的表示方式,转换后将得到错误结果

另外,要计算二个日期的差值,比如相差多少天,可以用

date2.getTime()/(1000*60*60*24) - date1.getTime()/(1000*60*60*24)

...

如果要给某个日期加几天,可以参考下面的代码:

代码语言:js
复制
var pickupDate = new Date('2010/02/01');
var newDate = new Date();
newDate.setTime(pickupDate.getTime()+(3*24*60*60*1000)); //给pickupDate加了3天,然后赋值给newDate
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2007-12-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com