4

重複の可能性:
PHPで現在の週の最初と最後の日を取得する

特定の日の週、月、四半期、および年の最初と最後の日を取得しようとしています。

たとえば、2013 年 1 月 16 日の場合、最初と最後の日は次のようになります。

  • 週 - 2013-01-13 と 2013-01-19 になります (日曜日から土曜日を想定)
  • 月 - 2013-01-01 と 2013-01-31 になります
  • 四半期 - 2013-01-01 と 2013-03-31 になります
  • 年 - 2013-01-01 と 2013-12-31 になります

私の目的は、それらを に含めることWHERE myDate BETWEEN 2013-01-13 AND 2013-01-19です。

標準の MYSQL 関数ソリューション (ストアド プロシージャなどは除く) または PHP ソリューションの両方を使用できます。ありがとうございました


特定の四半期の初日と最終日のソリューション。

$q=ceil($date->format("n")/3);
$months_start=array('January','April','July','October');
$months_end=array('March','June','September','December');
$m_start=$months_start[$q-1];
$m_end=$months_end[$q-1];
$modifier='first day of '.$m_start.' '.$date->format('Y');
$date->modify($modifier);
echo $modifier.': '.$date->format('Y-m-d').'<br>';
$modifier='last day of '.$m_end.' '.$date->format('Y');
$date->modify($modifier);
echo $modifier.': '.$date->format('Y-m-d').'<br>';
4

1 に答える 1

8

使用できますstrtotime

$date = strtotime('2013-01-16');

// First/last day of week 
$first = strtotime('last Sunday');
$last = strtotime('next Saturday');

または PHP のネイティブDateTime機能:

$date = new DateTime('2013-01-16');

// First/last day of month
$first = $date->modify('first day of this month');
$last = $date->modify('last day of this month');

年の最初/最後の日を取得するのは少し難しいかもしれません:

// Get date
$date = new DateTime('2013-01-16');

// Format to get date
$year = $date->format('Y');

// Get first day of Jan and last day of Dec
$first = $date->modify("first day of January $year");
$last = $date->modify("last day of December $year");
于 2013-01-19T15:43:48.907 に答える