特定の 2 つの日付、つまり 2012-01-01 から 2012-12-31 の週番号を取得したいと考えています。週番号は、上記で指定した範囲に正確に収まる必要があります。これを行うための提案をお願いします。
質問する
6528 次
5 に答える
3
このようなものはうまくいくはずです:
<?php
$startDateUnix = strtotime('2012-01-01');
$endDateUnix = strtotime('2013-01-01');
$currentDateUnix = $startDateUnix;
$weekNumbers = array();
while ($currentDateUnix < $endDateUnix) {
$weekNumbers[] = date('W', $currentDateUnix);
$currentDateUnix = strtotime('+1 week', $currentDateUnix);
}
print_r($weekNumbers);
?>
デモ。
出力:
Array
(
[0] => 52
[1] => 01
[2] => 02
.........
[51] => 51
[52] => 52
)
于 2013-04-16T12:44:19.877 に答える
2
DateTime を使用して、次のようなものが必要だと思います。
$first_date = new DateTime();
$last_date = new DateTime('-50 weeks');
$days_array = array();
foreach(new DatePeriod($first_date, new DateInterval('P1D'), $last_date) as $date) {
$days_array[] = $date->format('W');
}
于 2013-04-16T12:48:35.707 に答える
1
このようなものが仕事をするはずです:
$start = '2012-01-01';
$end = '2012-12-31';
$dates = range(strtotime($start), strtotime($end),604800);
$weeks = array_map(function($v){return date('W', $v);}, $dates); // Requires PHP 5.3+
print_r($weeks);
于 2013-04-16T12:47:39.703 に答える
0
次のようにします。
[削除]
編集
<?php
for($w = strtotime($start_date); $w <= strtotime($end_date); $w += 7 * 24 * 3600)
{
echo date("W", $w) . '<br />';
}
?>
于 2013-04-16T12:44:57.273 に答える