PHP 相对于当前日期的下一个第二个星期五
PHP next second friday relative to current date
我有一个 cron 作业,每两个星期五运行一次以发送到邮件列表
0 8 * * 5 test $(($(date +\%V)\%2)) -eq 1
如何在 php 中找到相对于当前日期的下一个发货日期,以便通知用户下一次发货的时间。
例如
@returns next second Friday date from random_date
function next_dispatch_date(random_date){
}
echo "Next Dispatch on" . next_dispatch_date(date());
我想到的第一个解决方案是:
$dt = new DateTime();
$dt->modify('next friday'); // Next friday from now
$dt->modify('next friday'); // Next friday from next friday
echo $dt->format('Y-m-d');
或者,正如您在 post 中提示的函数:
function next_dispatch_date($timestamp){
$dt = new DateTime();
$dt->setTimestamp($timestamp);
$dt->modify('next friday');
$dt->modify('next friday');
return $dt->format('Y-m-d');
}
echo "Next dispatch on ".next_dispatch_date(time());
请注意,与您原来的 post 相比,我使用的是 time()
而不是 date()
,后者用于格式化时间戳。
您可以使用具有相对格式的 strtotime()
(参见 PHP manual)
即
@returns next second Friday date from random_date
function next_dispatch_date($random_date){
date('Y-m-d', strtotime('Friday next week '.$random_date));
}
假设 $random_date
的格式为 'Y-m-d'...
我有一个 cron 作业,每两个星期五运行一次以发送到邮件列表
0 8 * * 5 test $(($(date +\%V)\%2)) -eq 1
如何在 php 中找到相对于当前日期的下一个发货日期,以便通知用户下一次发货的时间。
例如
@returns next second Friday date from random_date
function next_dispatch_date(random_date){
}
echo "Next Dispatch on" . next_dispatch_date(date());
我想到的第一个解决方案是:
$dt = new DateTime();
$dt->modify('next friday'); // Next friday from now
$dt->modify('next friday'); // Next friday from next friday
echo $dt->format('Y-m-d');
或者,正如您在 post 中提示的函数:
function next_dispatch_date($timestamp){
$dt = new DateTime();
$dt->setTimestamp($timestamp);
$dt->modify('next friday');
$dt->modify('next friday');
return $dt->format('Y-m-d');
}
echo "Next dispatch on ".next_dispatch_date(time());
请注意,与您原来的 post 相比,我使用的是 time()
而不是 date()
,后者用于格式化时间戳。
您可以使用具有相对格式的 strtotime()
(参见 PHP manual)
即
@returns next second Friday date from random_date
function next_dispatch_date($random_date){
date('Y-m-d', strtotime('Friday next week '.$random_date));
}
假设 $random_date
的格式为 'Y-m-d'...