【问题标题】:How do I display the start and end date of the current week in PHP?如何在 PHP 中显示本周的开始和结束日期?
【发布时间】:2019-10-11 22:10:52
【问题描述】:

我纠结了很久,我试图做的是获取本周的开始结束日期。

本周从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');  

但我敢肯定我做错了什么,但不知道是什么,感谢任何帮助。

【问题讨论】:

标签: php date datetime


【解决方案1】:

你可能只是漏掉了一个小细节。

首先,DateInterval 应该以间隔规范格式接收其参数。请参阅https://php.net/manual/en/dateinterval.construct.php。 此外,您只是在间隔中增加 1 天,您应该根据您想要达到的目标增加 6:

$dtTo_current->add( new DateInterval( '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' );

【讨论】:

  • 啊,太好了,我错过了什么,感谢您的时间和努力,它的工作就像一个魅力:)
猜你喜欢
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 1970-01-01
  • 2023-03-30
  • 2015-04-09
  • 2010-11-19
  • 2012-07-25
相关资源
最近更新 更多