PHP 日期運算等若干例

2021-08-30 12:52:00 字數 1675 閱讀 5377

[size=large]1.時區問題[/size]

date()函式是獲取伺服器時間的函式。但在不同的主機上,在同乙個時間內,可能由於時區不同獲取的時間值不同。

從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的。也就是顯示的時間(無論用什麼php命令)都是格林威治標準時間,和我們的時間(北京時間)差了正好8個小時.

可以用以下兩種方法解決:

1). 修改php.ini檔案,查詢 ;date.timezone = ,把前面的分號去掉在 "="後面加上時區

比如:asia/chongqing (重慶),asia/shanghai (上海),asia/urumqi (烏魯木齊),asia/macao (澳門),asia/hong_kong (香港),asia/****ei (台北)

重啟http伺服器 如apache2即可。

2). 如果你沒有修改php.ini的許可權那麼就在你寫程式時在呼叫data()函式之前加上一句 " date_default_timezone_set("時區");

比如:

date_default_timezone_set ("asia/chongqing");

echo date("y-m-d h:i:s");

[size=large]2. 給定兩個日期時間串(如2010-03-21 04:26:21),計算出間隔時間是否超過一天[/size]

$date1=strtotime('2010-03-21 04:26:21');

$date2=strtotime('2010-03-22 04:26:19');

$secondsinoneday = 60 * 60 * 24;

$period = $date2 - $date1;

if($period >= $secondsinoneday) else

3. 計算7天前的日期串並輸出

<?php

$d = time() - 60 * 60 * 24 * 3;

echo date('y-m-d', $d);

4. 順便提下magento

magento的mage_core_model_resource_abstract有個方法formatedate,下例

$days = 7;

$d = $resmodel->formatdate(time() - 60 * 60 * 24 * 7);

echo $d;

可以輸出形如:2010-03-22 04:26:19 的字串用來資料庫條件查詢等

magento的mage_core_block_abstract也有乙個fomatedate方法,不過是對形如2010-03-22 04:26:19這樣的資料庫常用的日期欄位串的格式化,如一條產品review的時間為:2010-03-22 04:26:19,那麼

<?php echo $block->formatdate($_review->getcreatedat()); ?>

上述**預設使用'short'格式輸出: 2010/03/22

php日期週末天氣等獲取方式

獲取今天週幾 weekarray array 週日 周一 周二 週三 周四 周五 週六 先定義乙個陣列 weather week weekarray date w 加粗樣式 獲取天氣介面 function weather market id data market id market id,temp...

php驗證函式 包括email,url,日期等等

php view plain copy print?在code上檢視 片派生到我的 片 是否是手機號碼 param string phone 手機號碼 return boolean function is phone phone phone else 驗證字串是否為數字,字母,中文和下劃線構成 pa...

PHP 日期格式化(獲取上月第一天 最後一天等)

1.獲取上個月第一天及最後一天.echo date y m 01 strtotime 1 month echo echo date y m t strtotime 1 month echo 2.獲取當月第一天及最後一天.begindate date y m 01 strtotime date y m...