日期的計算

2021-09-18 06:28:09 字數 1120 閱讀 5226

<?php 

$year=1985;

$month=11;

$day=13;

$birthday=mktime(0,0,0,$month,$day,$year);

$nowdate=mktime();

$ageunix=$nowdate-$birthday;

$age=floor($ageunix/(60*60*24*365));

echo "年齡:".$age;

?>

出現警告:

年齡:33

解決辦法:

原因分析:

這是因為php預設是以格林威治標準時間(utc)為準進行時間轉換,因為自己所處的當地時間與utc會有出入,格林威治標準時間和北京時間有8個小時的時間差。因此我們必須為php指定乙個時區,讓php知道以哪個時區為準進行轉換。

解決辦法: 

在你的php程式頭部使用date_default_timezone_set()設定我的預設時區為北京時間(prc,中國的英文縮寫), 即  <?php      date_default_timezone_set("prc");    ?>就可以了。這種方法使用時太複雜,必須在每個使用date的檔案中新增相關函式,下面的方法更簡單方便。

在php.ini中找到date.timezone行,支援前面的';'號(如果沒有修改過的話應該是沒有啟動此選項的),並將它的值設定為prc,設定好以後為:date.timezone=prc。

最後別忘了重新啟動httpd服務嘍,問題終於告一段落了。

修改後**:

<?php   date_default_timezone_set("prc"); 

$year=1985;

$month=11;

$day=13;

$birthday=mktime(0,0,0,$month,$day,$year);

$nowdate=mktime();

$ageunix=$nowdate-$birthday;

$age=floor($ageunix/(60*60*24*365));

echo "年齡:".$age;

?>

日期的計算

year 1985 month 11 day 13 birthday mktime 0,0,0,month,day,year nowdate mktime ageunix nowdate birthday age floor ageunix 60 60 24 365 echo 年齡 age 出現警告...

SQL Server的日期計算

a.乙個月的第一天 select dateadd mm,datediff mm,0,getdate 0 b.本週的星期一 select dateadd wk,datediff wk,0,getdate 0 c.一年的第一天 select dateadd yy,datediff yy,0,getdat...

日期計算的問題

針對這個問題,我的需求自然是2月28日或2月29日,原先想的簡單,就是加乙個月 d new datetime 2017 01 31 d add new dateinterval p1m echo d format y m d 2017 03 03 結果跑到3月份去了,php的datetime並不會產...