关于DateTime计算某个日期过后的多少天之后的日期

      做了一个东西将excel上面的内容下载下来装入数据库,期间我发现excel中的日期是自定义类型的数据,所以拿出来的日期是一串数字,经过研究我发现它是从1900年到现在的天数,于是我准备把它转成日期,开始我用的是date和time函数准备解决,发现unix时间戳是从1970年开始计时,所以根本无法完成这个日期转时间,后来我发现了php库内置的一个类DateTime,它里面有一个函数add可以完成这个功能,所以我就写了下面的代码:

$date = new DateTime('2000-01-01',new DateTimeZone('Asia/Shanghai'));

$date->add(new DateInterval('P10D'));

echo $date->format('Y-m-d') . "\n";

上面这段代码我来解释一下,首先是datetime的构造函数需要的参数,第一个是一个日期,也就是你的开始日期,默认是当前时间,第二个是一个时区的对象,他的构造函数的参数是时区的字符串,add函数的参数是一个DateInterval对象,他的构造参数是一个字符串。Add函数返回一个datetime的类,再调用format函数来显示时间,DateInterval的参数表示第一个datetime的时间推后多少天的日期,至此问题就解决了

posted on 2015-12-07 18:56  ~色即是空  阅读(1585)  评论(0编辑  收藏  举报

导航