使用PHP日期和未来日期

时间:2014-05-13 14:04:43

标签: php datetime

对于大家来说,这个问题可能非常简单。因为我还在为我学习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

2 个答案:

答案 0 :(得分:0)

PHP中新的面向对象的包是你的朋友。使用日期时间: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");

答案 1 :(得分:0)

尝试在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));