假设您创建的应用程序需要每月向您发送一封电子邮件。日期开始日期是2012年2月29日。由于没有2013年2月29日,您如何处理明年的情况。同样,如果开始日期是JAN 31,则没有FEB 31或APR 31,依此类推。 ..
答案 0 :(得分:3)
在本月1日发送,而不是:)
答案 1 :(得分:3)
只需使用适用于此的DateTime类:
如果我想要从2012年2月29日开始的1个月日期:
$date = new DateTime('2012-02-29'); // "start date"
$date->add(new DateInterval('P1M')); //one month later
echo $date->format('Y-m-d') . "\n"; //2012-03-29
一年后:
$date = new DateTime('2012-02-29'); //start
$date->add(new DateInterval('P1Y')); //one year later
echo $date->format('Y-m-d') . "\n"; //2013-03-01
使用此功能,您可以轻松计算所需的任何日期间隔。
答案 2 :(得分:2)
我会在将日期保存到数据库之前测试日期。
Get last day of any other month
Enter any month/day/year to get the last day of that month
$lastday = date('t',strtotime('3/1/2009'));
If you want to display the last day of this month on your website, do the following:
<?php
echo date('t',strtotime('today'));
?>
来源:http://www.johnboy.com/blog/find-the-last-day-of-the-month-with-php
答案 3 :(得分:1)
当脚本运行时,检查实际日期(如果是该月的最后一天)并根据结果进行操作。