-1

date() 関数を使用して、PHP で曜日 ("N") の ISO-8601 数値表現を取得しようとしています。ただし、mktime() を使用する日を問わず、「3」を返し続けます。

<?php

$date = date( "Y-m-d H:i:s", mktime(0, 0, 0, 9, 16, 2011) );
//$date = date( "Y-m-d H:i:s", mktime(0, 0, 0, 9, 17, 2011) );

print_r(date('N', $date));

?>

出力: 3

4

2 に答える 2

4

の 2 番目の引数に日付文字列を入力しないdate()でください。Unix タイムスタンプ ( から返される値) を含む整数にする必要がありますmktime()date()ドキュメントを参照してください。

$date = mktime(0, 0, 0, 9, 16, 2011);
var_dump(date('N', $date)); // string(1) "5"

元のコードで:

$date = date( "Y-m-d H:i:s", mktime(0, 0, 0, 9, 16, 2011) );
print_r(date('N', $date));

の値は$dateです"2011-09-16 00:00:00"。これは整数ではなく、その日付/時刻の Unix タイムスタンプではありません。そのため、値を操作できず、1970 年 1 月 1 日の Unix エポック (タイムスタンプ)の使用にdate()戻ります発行済み。0E_NOTICE

于 2011-10-04T19:08:42.770 に答える
0

PHPは、によって生成された文字列を日付として解釈しようとしてdate( "Y-m-d H:i:s", mktime(0, 0, 0, 9, 16, 2011) );いますが、PHPはエポックからの秒数をデータ時間として使用します。mktimeの結果を次のように2番目のデータ関数呼び出しに渡すことができます。

$dateTime = mktime(0, 0, 0, 9, 16, 2011)
$date = date("Y-m-d H:i:s",  $dateTime);
echo date('N', $dateTime);
// results in "5"
于 2011-10-04T19:12:54.687 に答える