錯誤處理
錯誤的分類
語法錯誤
這種錯誤最常見,但也最容易搞定;一旦出現,一行**都不執行
執行時錯誤
在頁面上給你報出來,有的會終止**執行,有的不會
邏輯錯誤
這種錯誤最麻煩
錯誤的級別
notice
提示級別,不會影響後續**的執行
如:輸出不存在的變數
warning
警告級別,也不會終止**執行
如:include包含檔案
error
錯誤級別,會終止**執行
如:語法錯誤或者require
deprecated
反對級別,不贊成這樣的使用,不會終止**執行
如:(5.6用mysql_connect、echo mktime())
strict
語法不夠嚴謹
處理錯誤:
1.用@遮蔽錯誤資訊
有的錯誤遮蔽不了
2.通過配置檔案php.ini控制錯誤的顯示
display_errors
display_errors = off //不顯示任何錯誤
注意:關閉錯誤顯示後,如果頁面中有error級別的錯誤,伺服器會直接返回500錯誤
error_reporting
error_reporting = e_all //顯示所有錯誤
3.通過ini_set函式設定
ini_set('配置項', '配置值')
4.通過error_reporting函式設定錯誤級別
error_reporting(0); //遮蔽所有錯誤
自定義錯誤處理:
可以通過set_error_handler函式自己接管錯誤處理。
注意:致命錯誤無法被自定義(手冊中搜尋set_error_handler)
記錄錯誤日誌
1、以檔案的方式記錄(預設)
log_errors = on 開啟錯誤日誌的記錄
error_log = c:/sb.txt 指定錯誤的路徑
2、記錄到作業系統日誌中
error_log = syslog 指定錯誤的路徑
我的電腦-》管理-》事件檢視器-》windows日誌-》應用程式
函式error_log('日誌資訊'),手動寫日誌
php的時間和日期
獲取unix時間戳
time() 獲取當前時間戳
因為unix作業系統的誕生,2023年為unix元年
mktime() 獲取乙個指定日期的時間戳
mktime(時,分,秒,月,日,年)
沒有給的引數預設為當前的!
strtotime()將英文的時間日期描述轉換為時間戳
修改php預設時區:
1、改php.ini配置檔案:
date.timezone = "prc" //預設為utc
//prc 中華人民共和國的簡寫
//people's republic of china
date.timezone = "asia/shanghai"//上海
中原(asia/shanghai) 上海
隴蜀(asia/chongqing) 重慶
長白(asia/harbin) 哈爾濱
新藏(asia/urumqi) 烏魯木齊(慢兩小時)
崑崙(asia/kashgar) 喀什(慢兩小時)
參考:五大時區的劃分:
date.timezone = "asia/hong_kong"//香港
2、通過ini_set函式來臨時設定
ini_set('date.timezone', 'prc');
3、通過專門的函式來設定或者獲取
date_default_timezone_set('prc');
//獲取當前的時區設定
date_default_timezone_get();
格式化輸出:
date(格式字串[, 時間戳])
格式字串中不能被識別的字元將原樣顯示
echo date('y'); //4位完完整年份
echo date('m'); //月份
echo date('d'); //日
echo date('h'); //時
echo date('i'); //分
echo date('s'); //秒
y 兩位數的年份
n 沒有前導0的月份
j 沒有前導0的日
g 沒有前導0的小時
獲取微秒數: microtime([true])
給了引數true返回乙個浮點數
php時間和日期
時區設定 php中日期和時間的預設設定是 gmt格林尼治,在使用日期和時間是需要對時區進行設定 設定方法 1 修改php.ini檔案的設定。將 date.timezone 選項開啟並設定為 asia hong kong 2 在應用程式中直接使用函式date default timezone set ...
PHP 日期和時間
checkdate函式驗證日期的正確性 date函式將伺服器的時間格式化 getdate獲得時間及日期資訊 time獲取目前時間的unix時間戳。date 通過date函式可以獲取按照指定格式輸出的日期和時間資訊,如果省略引數,會自動獲取本地的當前時間。宣告如下 string date string...
PHP時間和日期
起始時間1970年1月1日至今走過的秒數 time 返回當前時間戳 秒 ps j a gettime 返回的是毫秒 microtime 返回微秒數 當前 unix時間戳,1s 1000ms,1 ms 1000 s 它的結果是字串,分兩部分,前半部分是微秒 但是單位是秒 後半部分是秒。返回字串格式示例...