如果过去的日期不是周四,我希望在下一个星期四相对于特定日期。这与代码有多远。
<?php
$string = '2014.07.16';
$date = DateTime::createFromFormat("Y.m.d", $string);
$result = $date->format("D");
if ($result != 'Thu')
{
$result2 = strtotime('next Thursday');
echo date('Y.m.d', $result2);
}
?>
在上面的代码中,变量$ string是传递的日期,即&#39; Wed&#39; 我想得到2014.07.16&#39;这是下周四相对于2014.07.17&#39;。 这意味着如果$ string是&#39; 2014.07.21&#39;这是一个周一,返回日期将是&#39; 2014.07.24&#39;那是下周四相对于2014.07.21&#39; 我正在接受2014.07.31&#39;现在是下一个星期四到今天的日期。
如何获得下一个星期四相对于$ string(通过日期)
谢谢。
答案 0 :(得分:2)
试试这个
$string = '2014.07.16';
$date = DateTime::createFromFormat("Y.m.d", $string);
$result = $date->format("D");
if ($result != 'Thu')
{
$result2 = strtotime('next Thursday', strtotime($date->format("d-M-Y")));
echo date('Y.m.d', $result2);
}
输出:2014.07.17
<强> Working Demo 强>
答案 1 :(得分:0)
strtotime很聪明,可以使用各种参数。但是,您需要以不同于您使用的格式传递日期。只需更换。与 - 在将日期传递给strtotime之前:
$string = '2014.07.16';
$string = str_replace('.', '-', $string);
if (date('w', strtotime($string)) != 4) {
$date = date('Y.m.d', strtotime($string . ' next thursday'));
echo $date;
}
date(&#39; w&#39;)以整数形式返回星期几。使用它进行比较比使用字符串更好。