ITPub博客

首页 > IT职业 > IT职场 > javascript中将日期字符串转换为日期对象

javascript中将日期字符串转换为日期对象

IT职场 作者:regatta 时间:2021-09-09 09:11:14 0 删除 编辑

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

 

图片描述
图片描述 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("
" + new Date("2000/01/02"));//输出Sun Jan 2 00:00:00 UTC+0800 2000
图片描述 document.write("
" + Date("2000/01/02"));//输出Wed Dec 05 10:18:33 2007
图片描述 document.write("
" + new Date("2000-01-02"));//输出NaN
图片描述 document.write("
" + Date("2000-01-02"));//输出Wed Dec 05 10:18:33 2007
图片描述
图片描述
图片描述

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

 

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

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

...

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

var pickupDate = new Date('2010/02/01');
var newDate = new Date();
newDate.setTime(pickupDate.getTime()+(3*24*60*60*1000)); //给pickupDate加了3天,然后赋值给newDate

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2281/viewspace-2800155/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    0
  • 访问量
    578