如何在PHP中找到最接近的一周?

moo*_*eek 10 php date weekday dayofweek

如果最初我有一个日期字符串,如何在PHP中找到一周中最近的一天07.05.2010?例如,我想找到最近的星期日(或一周中的任何一天).我该如何实现呢?谢谢

sal*_*the 16

如果你想要最近的一天而不是一天,这是一种方法.

$target = "Sunday";
$date   = "07.05.2010";

// Old-school DateTime::createFromFormat
list($dom, $mon, $year) = sscanf($date, "%02d.%02d.%04d");
$date = new DateTime("$year/$mon/$dom -4 days");
// Skip ahead to $target day
$date->modify("next $target");

echo $date->format("d.m.Y");
Run Code Online (Sandbox Code Playgroud)

从PHP 5.3开始,中间部分可以很简单

$date = DateTime::createFromFormat("!d.m.Y", $date)
        ->modify("-4 days")->modify("next $target");
Run Code Online (Sandbox Code Playgroud)


Mik*_*ike 9

这应该做:

echo date('d.m.Y', strtotime('next Sunday', strtotime('07.05.2010')));
Run Code Online (Sandbox Code Playgroud)

  • "下周日"不一定是"最近的星期天" (11认同)
  • 另外,一定要测试边缘情况.如果07.05.2010本身是星期天会发生什么? (4认同)