我用PHP编写了一个函数,它将打印每个月的第三个星期一 我现在想测试该功能,如果该功能将在下个月运行,而不必等到下个月。
我的想法是,通过内部设置PHP到下个月的时间并运行该功能,我可以测试该函数将来如何工作。
我希望有一个Date Time ini setting可以在我的功能之前插入,以便将时间转移到未来,例如
<?php
$one_month_from_now = time() + 2592000;
ini_set('php_internal_time', $one_month_from_now);
function print_third_monday() {
// ....
}
print_third_monday();
有可能像这样改变PHP的内部时间吗?如果是这样,怎么样?
答案 0 :(得分:1)
echo date("y-m-d H:i:s D");//17-03-16 10:43:38 Thu
echo PHP_EOL;
echo date("y-m-d H:i:s D",strtotime("+1 month"));//17-04-16 10:43:38 Sun
答案 1 :(得分:0)
更好的功能如何实现相同的功能&amp;你可以轻松地交叉检查:
<?php
echo getThirdTuesdayofMonth(3,2017);
function getThirdTuesdayofMonth($month, $year) {
$thirdTuesday='';
$no_of_days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$tue_iter=0;
for($i=1;$i<=$no_of_days;$i++) {
if(date('l',strtotime($i.'-'.$month.'-'.$year))=='Tuesday') {
if($tue_iter==3) {
$thirdTuesday = date('dS F Y', strtotime($i.'-'.$month.'-'.$year));
}
$tue_iter++;
}
}
return $thirdTuesday;
}