PHP を使用して、週番号を見つけるにはどうすればよいですか。
- 週の最初の日は月曜日、
- 第 1 週は、今年の最初の月曜日の週です。
- 範囲は 1 ~ 53 ですか。
私はMySQLコードに相当するPHPを達成しようとしています:
SELECT WEEK(date('Y-m-d'), 7);
この Web サイトで見られるように: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week
例(間違った言語、MySQLで達成しようとしていること):
$dbh = new PDO("mysql:host=localhost;dbname=test", "root", "");
$stmt = $dbh->prepare("SELECT WEEK('2012-12-30', 7) as week");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "2012-12-30 = ".$result['week']."<br />";
$stmt = $dbh->prepare("SELECT WEEK('2012-12-31', 7) as week");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "2012-12-31 = ".$result['week']."<br />";
$stmt = $dbh->prepare("SELECT WEEK('2013-01-01', 7) as week");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "2013-01-01 = ".$result['week']."<br />";
$stmt = $dbh->prepare("SELECT WEEK('2013-01-06', 7) as week");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "2013-01-06 = ".$result['week']."<br />";
$stmt = $dbh->prepare("SELECT WEEK('2013-01-07', 7) as week");
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
echo "2013-01-07 = ".$result['week']."<br />";
出力: (探している出力)
2012-12-30 = 52
2012-12-31 = 53
2013-01-01 = 53
2013-01-06 = 53
2013-01-017 = 1
私の試み: (正しい言語、PHP、しかし間違った結果)
$date = new DateTime('2012-12-30');
echo "2012-12-30 = ".$date->format('W')."<br />";
$date = new DateTime('2012-12-31');
echo "2012-12-31 = ".$date->format('W')."<br />";
$date = new DateTime('2013-01-01');
echo "2013-01-01 = ".$date->format('W')."<br />";
$date = new DateTime('2013-01-06');
echo "2013-01-06 = ".$date->format('W')."<br />";
$date = new DateTime('2013-01-07');
echo "2013-01-07 = ".$date->format('W')."<br />";
出力 (間違った結果)
2012-12-30 = 52
2012-12-31 = 01
2013-01-01 = 01
2013-01-06 = 01
2013-01-07 = 02
かなり基本的な何かが欠けているように感じます。これに関するヘルプは非常に高く評価され、事前に感謝します!