所以情况就是这样.在我的db表中,我有一个名为expire_date的列,其中我为每一行设置了一个特定的日期.例如,过期日期是28-04-2012
我需要一个PHP代码,它会通过电子邮件向某个用户发送通知,告知该日期到期的某些内容是到期后的1个月.因此,如果今天是28-03-2012,这意味着在事情到期之前只有1个月亮.我没有为此制作任何代码,因为我不知道如何解决-1个月.
Exp*_* be 25
echo strtotime("-1 day"); //1332864156
echo date("y-m-d",strtotime("-1 day")); // 12-03-27
Run Code Online (Sandbox Code Playgroud)
http://us2.php.net/manual/en/function.strtotime.php
Tal*_*les 18
首先用php获取一个月的日期:
$myDate = date("Y-m-d", strtotime( date( "Y-m-d", strtotime( date("Y-m-d") ) ) . "+1 month" ) );
Run Code Online (Sandbox Code Playgroud)
然后你可以做一个选择:
$result = mysql_query( 'SELECT * FROM myTable WHERE expire_date BETWEEN NOW AND "' . $myDate . '"' );
Run Code Online (Sandbox Code Playgroud)
而且你有一个数组,所有项目都会在不到一个月的时间内到期.如果您想要在1个月内过期的那些:
$result = mysql_query( 'SELECT * FROM myTable WHERE expire_date = "' . $myDate . '"' );
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助
简单;
$WeekAgo = strtotime("-1 week"); //A week before today
$MonthAgo = strtotime("-1 month"); //A month before today
Run Code Online (Sandbox Code Playgroud)
我很惊讶这里缺少这个答案:
$oneMonthAgo = new \DateTime('1 month ago');
echo $oneMonthAgo->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)
今天是2019-01-28。上面的代码输出2018-12-28
这里可以玩:http : //sandbox.onlinephpfunctions.com/code/ad457f441719c6b9f68dc646445aac86a3f7f7a0
也许你应该用 SQL 而不是 PHP 来做到这一点,不是吗?
如果你想在 PHP 中进行,这里有一种比 @Expert 想要的更简洁的方法
$date = new DateTime();//now
$interval = new DateInterval('P1M');// P[eriod] 1 M[onth]
$date->sub($interval);
echo $date->format('Y-m-d');
Run Code Online (Sandbox Code Playgroud)