PHP:如何处理FEB 29等不规则日期的提醒申请?

时间:2012-03-29 11:37:21

标签: php

假设您创建的应用程序需要每月向您发送一封电子邮件。日期开始日期是2012年2月29日。由于没有2013年2月29日,您如何处理明年的情况。同样,如果开始日期是JAN 31,则没有FEB 31或APR 31,依此类推。 ..

4 个答案:

答案 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)

当脚本运行时,检查实际日期(如果是该月的最后一天)并根据结果进行操作。