我发现这可行,但是PHP的DateTime类中存在一些不一致之处。
如果出发日期是星期日,那么上一个星期一将不被视为同一周(由此类固定)。但是从星期一开始,下一个星期日被视为同一周。如果他们将来解决此问题,则该类将需要一些补充。
class EuroDateTime extends DateTime {
// Override "modify()"
public function modify($string) {
// Change the modifier string if needed
if ( $this->format('N') == 7 ) { // It's Sunday and we're calculating a day using relative weeks
$matches = array();
$pattern = '/this week|next week|prevIoUs week|last week/i';
if ( preg_match( $pattern, $string, $matches )) {
$string = str_replace($matches[0], '-7 days '.$matches[0], $string);
}
}
return parent::modify($string);
}
}