[英]ISO-8601 numeric representation of the day of the week (“N”) in PHP using the date() function always returns 3
試圖使用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
您不應該將日期字符串輸入date()
的第二個參數中,它應該是包含Unix時間戳(從mktime()
返回的值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時間戳。 因此, date()
無法使用該值,並恢復使用1970年1月1日的Unix紀元( 0
時間戳)。此外,一條E_NOTICE
消息指出“ 在線[文件]中遇到格式錯誤的數值[行]發出。
PHP正在嘗試解釋由date( "Ymd H:i:s", mktime(0, 0, 0, 9, 16, 2011) );
生成的字符串date( "Ymd H:i:s", mktime(0, 0, 0, 9, 16, 2011) );
作為日期,但是PHP使用從紀元起的秒作為數據時間。 您可以像這樣將mktime的結果傳遞給第二個數據函數調用:
$dateTime = mktime(0, 0, 0, 9, 16, 2011)
$date = date("Y-m-d H:i:s", $dateTime);
echo date('N', $dateTime);
// results in "5"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.