如何在PHP中显示当前周的开始和结束日期?

如何在PHP中显示当前周的开始和结束日期?,php,date,datetime,Php,Date,Datetime,很长一段时间以来,我一直在思考这个问题,我想做的是得到本周的开始日期和结束日期 本周从5月20日(星期一)开始至5月26日(星期日) 我的方法: //GETTING DATA FOR CURRENT WEEK $dtFrom_current = new DateTime; // get current date $dtTo_current = new DateTime; $dtFrom_current->setISODate($dtFrom_current->format('o

很长一段时间以来,我一直在思考这个问题,我想做的是得到本周的开始日期和结束日期

本周从5月20日(星期一)开始至5月26日(星期日)

我的方法:

//GETTING DATA FOR CURRENT WEEK

$dtFrom_current = new DateTime; // get current date
$dtTo_current = new DateTime;


$dtFrom_current->setISODate($dtFrom_current->format('o'), $dtFrom_current->format('W'));

$dtTo_current->setISODate($dtTo_current->format('o'), $dtTo_current->format('W') );
// add 1 day
$dtTo_current->add(new DateInterval('P1D') + 1 );

// convert to iso date for database use
echo   $dFrom_current = $dtFrom_current->format('Y-m-d');
echo  $dTo_current   = $dtTo_current->format('Y-m-d');  

但我确信我做错了什么,但不知道是什么,任何帮助都是感激的

您可能只是遗漏了一个小细节

首先,
DateInterval
应以间隔规范格式接收其参数。提到 除此之外,你只是在你的间隔时间上增加了1天,根据你想要达到的目标,你应该增加6天:

$dtTo_current->add(新的日期间隔('P6D')

查看重构代码并对其进行测试:

//GETTING DATA FOR CURRENT WEEK

$dtFrom_current = new DateTime; // get current date
$dtTo_current   = new DateTime;

$dtFrom_current->setISODate( $dtFrom_current->format( 'o' ), $dtFrom_current->format( 'W' ) );

$dtTo_current->setISODate( $dtTo_current->format( 'o' ), $dtTo_current->format( 'W' ) );
// add 1 day
$dtTo_current->add( new DateInterval( 'P6D' ) );

// convert to iso date for database use
echo $dFrom_current = $dtFrom_current->format( 'Y-m-d' );
echo "\n";
echo $dTo_current = $dtTo_current->format( 'Y-m-d' );

可能的复制品啊,太好了,我错过了什么,谢谢你的时间和努力,它的作品就像一个符咒:)