⑴ php時間戳判斷大小問題
造成這個原因的最大可能是你直接 date()取出來的是 UTC時間,不是北京時間(UTC+8)
解決辦法是在你代碼的源碼頂部插入一行。
date_default_timezone_set("PRC");
詳見我的日誌
http://snmoney.blog.163.com/blog/static/44005820130282382206/
如果時間還是不準,還有一個可能是 伺服器本身的時鍾不準,你可以通過 date('H:i:s') 直接輸出來判斷。
另外..第一行為何要輸出成 文本再轉換回timestamp呢?感覺效率降低,可以直接替換成 time();
⑵ PHP時間的寫法
我在.net的C#里用這樣的代碼實現對輸入的數據的單雙數進行判斷,請問同樣功能的代碼,在PHP里應該怎麼去編寫?C#代碼如下:
String Str_Input = Int_Input.ToString();
bool B_FoundMatch = false;
try
{
B_FoundMatch = Regex.IsMatch(Str_Input, "[13579]$");
//如果B_FoundMatch = true,則為單數,否則,為雙數
if (B_FoundMatch)
{
Int_Output = 1; //單數
}
else if (!B_FoundMatch)
{
Int_Output = 2; //雙數
}
}
catch (ArgumentException ex)
{
// Syntax error in the regular expression
}
⑶ [php]時間代碼
你可以在php.ini里設置你的默認時區
php.ini中修改這一行 [Date] ; Defines the default timezone used by the date functions date.timezone =Asia/Shanghai;
或者代碼里
date_default_timezone_set("Asia/Shanghai")
也可以獲取的時候 加上8小時就可以了用date的時候 給time()+8*60*60;
⑷ php 如何 獲取 數字 時區,比如+8 -8
查了php.ini沒有找到相關函數,那麼只能"曲線救國"了.我是這樣實現的
function current_timezone(){
return ($t=date("H",0))>12?$t-24:(int)$t;
}
另外,網上還找到有一種
timezone_offset_get(new DateTimeZone(date_default_timezone_get()), new DateTime())/3600
要創建兩個對象,所以想必效率會打折扣
⑸ 為什麼PHP中getdate等函數返回的時間比機器
php返回的時間是格林威治時間,和北京時間相差8小時。有條件的話,盡量使用客戶端時間,假如後台資料庫需要儲存時間數據,可以把前端時間提交到後台儲存。如果一定要用php來獲取時間,就要自己做好時區的轉換,比如把獲取的時間加上8小時,或者強行把時區設為東八區(北京時間):
date_default_timezone_set('PRC');
或者
ini_set('date.timezone','Asia/Shanghai');
⑹ php5時間修改問題
解決辦法:
1.在PHP.ini文件中修改設置。
[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Shanghai
這里真是。。。可以設置Shanghai,Chongqin,Hong_Kong,TaiBei...等等,可就是沒有找到Beijing,不知道是什麼原因。
2.在PHP程序中運行時設置。
<?php
if(date_default_timezone_get() != "Asia/Shanghai") date_default_timezone_set("Asia/Shanghai");
?>
注意:用"date_default_timezone_get"獲得的時間設置中有一個1,也不太清楚是雜回事呢。
3.在使用時間時自己多加8*3600秒也是行的。
<?php
echo date("Y-m-d H:i:s",time()+8*3600);
?>
個人推薦使用第二種方法,如果不能不使用"date_default_timezone_get"或"date_default_timezone_set"時,再使用第三種方法。當然了,如果是自己的伺服器,也可以通過設置PHP來設置也是行的。
⑺ <php echo date("Y-m-d H:i:s",$rs->post_time+8*3600)>是什麼意思為什麼要+8*3600
PHP5版本開始,獲取系統時間時,時間比當前實際時間少8個小時。原因是PHP.ini中沒有設置時區時,默認使用的是UTC時間,所以在中國時間要少8小時。因此要加8小時。
//解決方案:
1.在PHP.ini文件中修改設置北京時間。
date.timezone = Asia/Shanghai
2.在PHP程序中設置。
<?php
date_default_timezone_set("Asia/Shanghai");
?>
3.在使用時間時多加8*3600秒(也就是8小時)
<?php
echo date("Y-m-d H:i:s",time()+8*3600);
?>
//以上3種方法根據自己情況,靈活使用
⑻ php問題 mysql_query("set time_zone = '+8:00';");這句是什麼意思
這是一句設置MySQL伺服器時區的語句。具體情況可以參考下面解釋(來源於手冊):
MySQL伺服器有幾個時區設置:
· 系統時區。伺服器啟動時便試圖確定主機的時區,用它來設置system_time_zone系統變數。
· 伺服器當前的時區。全局系統變數time_zone表示伺服器當前使用的時區。初使值為'SYSTEM',說明伺服器時區與系統時區相同。可以用--default-time-zone=timez選項顯式指定初使值。如果你有SUPER 許可權,可以用下面的語句在運行時設置全局變數值:
· mysql> SET GLOBAL time_zone = timezone;
· 每個連接的時區。每個客戶端連接有自己的時區設置,用會話time_zone變數給出。其初使值與全局變數time_zone相同,但可以用下面的語句重設:
· mysql> SET time_zone = timezone;
可以用下面的方法查詢當前的全局變數值和每個連接的時區:
mysql> SELECT @@global.time_zone, @@session.time_zone;
timezone值為字元串,表示UTC的偏移量,例如'+10:00'或'-6:00'。如果已經創建並裝入mysql資料庫中的時區相關表,你還可以使用命名的時區,例如'Europe/Helsinki'、'US/Eastern'或'MET'。值'SYSTEM'說明該時區應與系統時區相同。時區名對大小寫不敏感。
⑼ php里date("H")得到的是格林尼治時間,怎麼轉為北京時間
date_default_timezone_set('PRC');
不要少了引號,PRC不是常量