【发布时间】:2010-10-07 16:57:32
【问题描述】:
我如何获得从 $startDate 开始的 31 天后的日期,其中 $startDate 是这样格式的字符串:YYYYMMDD。
谢谢。
【问题讨论】:
我如何获得从 $startDate 开始的 31 天后的日期,其中 $startDate 是这样格式的字符串:YYYYMMDD。
谢谢。
【问题讨论】:
strtotime 会给你一个 Unix 时间戳:
$date = '20101007';
$newDate = strtotime($date.' + 31 days');
如果需要,您可以使用date 将其格式化为相同的格式:
echo date('Ymd', $newDate);
【讨论】:
+31 days 部分。
$date 的格式;如果您将其保留为标准格式,那很好 - 如果您尝试解析任意格式(例如 dd/mm/yyyy 与 mm/dd/yyyy),您可能会遇到问题。选择一个,确保它有效,然后对您使用的所有日期强制执行该格式。
如果您使用的是 PHP 5.3:
$date = new DateTime('20101007');
$date->add(new DateInterval('P31D'));
echo $date->format('Y-m-d');
至少可以说缺少 5.3 之前的日期功能。 DateTime 的东西使处理日期变得更加容易。 http://us3.php.net/manual/en/book.datetime.php
【讨论】:
请注意,如果您希望下个月的日期相同,而不是每次都正好是 31 天,+1 个月也可以。
【讨论】:
echo date('Y m d',strtotime('+31 Days'));
【讨论】: