我想问大家一个很简单的问题。因为我还在学习php对我来说,这是稍微复杂一些,所以请轻松。
对,我正试着根据当前日期和时间计算下一个日期。我的意思是假设我在每周四和周六工作。我需要计算下一个工作日是什么时候。
我可以检索当前周,但不知道如何将每个星期四和星期天设置为我的工作日。
$date = date("Y-m-d",strtotime('monday this week')).' - '.date("Y-m-d",strtotime("sunday this week"));
我希望输出是这样的:
当周2014-05-12至2014-05-17
下一个工作日:2014-05-14
本周最后一个工作日:2014-05-17
PHP中新的面向对象包是您的朋友。使用DateTime: http://www.php.net/manual/en/class.datetime.php
<?php
$workDays = array("Thursday", "Saturday");
$d = new DateTime; //creates a datetime object, by default, the current time
while(!in_array($d->format("l"), $workDays)) $d->add(new DateInterval('P1D'));
print "Next work day: " . $d->format("Y-m-d");
尝试在if语句中使用date('w')
来为您提供当前工作日的数字表示,其中Sunday == 0。
if (date('w') < 4) { // Currently Sun-Weds
$next_wd_str = 'thursday this week';
$last_wd_string = 'saturday last week';
} elseif (date('w') > 4 && date('w') < 6) { //Currently Fri
$next_wd_str = 'saturday this week';
$last_wd_string = 'thursday this week'
} elseif (date('w') ==4) {
$next_wd_str = 'today';
$last_wd_string = 'saturday last week';
} else {
$next_wd_str = 'today';
$last_wd_string = 'thursday this week';
printf ('Next working day: ', date('Y-m-d', strtotime($next_wd_str));
printf ('Last working day: ', date('Y-m-d', strtotime($last_wd_str));