如何使用PHP和PEAR進行不同時區的轉換

來源:互聯網
上載者:User

PHP具備一系列日期和時間函數,這為您擷取時間資訊提供了便利,您可以將這些資訊轉換為需要的格式並用於計算或者展示給使用者。但是假如您想實現一些複雜的功能,事情可能會變得非常複雜。

  一個簡單的例子是在網頁上顯示時間。在PHP中,您可以簡單地使用data()函數讀取伺服器的時鐘並以指定的格式進行顯示;但是假如您所要顯示的時間是不同時區的,比如,您的公司和伺服器位於不同的國家,您需要看到的是本地時間而不是當地時間。

  因此,您需要計算出兩地的時差,並進行一些計算從而在不同的時區中進行調整,假如時差很重要,您還需要考慮到日期變更、夏令時、月底的最後一天以及閏年的限制等等。

  正如您想像的一樣,假如您手動完成這些時區的數學計算,那麼這很快就會變成一件很複雜的事情。幸好,PHP內建的時區函數可以協助解決這一問題,但這些函數並不直觀,需要一些時間來熟悉它們的使用。當然,更加快捷的一個選擇是使用PEAR的Date類庫,它具備對時區的內建支援,而且到目前為止,這是進行時區轉換的最簡便的方法。

  這篇指南將向您講解如何使用PEAR的Date類在不同的時區中進行不同的時間數值轉換。我假定您已經安裝了Apache、PHP以及PEAR的Date類庫並且它們都能正常工作。

  注重:您可以直接從互連網上安裝PEAR的Date類庫,您可以下載或使用它提供的指南進行安裝。

  開始

  讓我們從基礎的初始化和使用Date對象開始講解,請建立列表A中的PHP代碼:

<?php
// include class
include ("Date.php");

// initialize object
$d = new Date("2006-06-21 15:45:27");

// retrieve date
echo $d->getDate();
?>

  這個例子非常簡單,它所包含的類代碼使用一個日期/時間字串初始化了一個Date()對象,然後使用getDate()方法來展示您插入的數值,以下是輸出的結果:

  2006-06-21 15:45:27

  如何以不同格式來顯示日期呢?假如是一個標準格式,比如ISO格式,那隻需要向getDate()傳遞一個修飾符來指明即可,代碼如列表B所示:

<?php
// include class
include ("Date.php");

// initialize object
$d = new Date("2006-06-21 15:45:27");

// retrieve date as timestamp
echo $d->getDate(DATE_FORMAT_ISO_BASIC);
?>

這個例子的輸出符合標準的ISO格式。

20060621T154527Z

  假如需要自己定製的格式,您可以使用format()方法來實現這一點,它和PHP的原有的date()函數一樣,format()方法可以接收一系列格式定義符來指明日期每個部分的具體格式。列表C展示了使用format()方法的例子(您可以參考類文檔來擷取格式定義符的完整列表)。

<?php
// include class
include ("Date.php");

// initialize object
$d = new Date("2006-06-21 15:45:27");

// retrieve date as formatted string
echo $d->format("%A, %d %B %Y %T");
?>

  輸出的結果如下:

  Wednesday, 21 June 2006 15:45:27

  時區間進行轉換

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.