例子E
<?php
//包括类
include("Date.php");
//初始化对象
$d = new Date("2008-03-01 06:36:27");
//设置当地时区
$d->settzbyid("GMT");
//输出当地时间
echo "当地时间是".$d->format("%A, %d %B %Y %T") ."n";
//转换成目的时区
$d->converttzbyid("PST");
//得到转换的日期/时间
echo "目的地时间是".$d->format("%A, %d %B %Y %T");
? >
输出结果是:
当地时间是Saturday, 01 March 2008 06:36:27
目的地时间是Friday, 29 February 2008 22:36:27
计算格林维志时间时差
有时我们需要计算与格林时间的时差, 通过Date的getRawOffset() 方法可以实现。下面是一个例子:
例子F
<?php
//包括类
inclue("Date.php");
//初始化对象
$d = new Date("2006-06-21 10:36:27");
//设置当地时区
$d->settzbyid("PST");
//得到未加工的与格林维志时间的时差,单位是毫秒
echo $d->getrawoffset(>);
? >
这里, getRawOffset() 方法计算在当地时间和格林维志时间之间的时差。输出为:
-28800000
注意这时间差单位为毫秒, 因此您将需要由 3600000 (毫秒的数量在一个小时)为一小时来计算时差在几小时。
增加和减去时间-Date_Span
Date类可以让您方便的对时间进行计算,对日期/时间增加或减去时间。这些时间(或timespans)包含天、小时、分钟被表达作为串 下面是一个简单的例子:
例子G
<?php
//包括类
include("Date.php");
//初始化对象
$d = new Date("2006-06-21 15:45:27");
//加01:20
$d->addSpan(new Date_Span("0,1,20,0"));
//得到格式化的字符串
echo $d->format("%A, %d %B %Y %T");
? >
在这个例子中, 我为最初的时间戳增加了一小时二十分钟, 使用Date的 addSpan() 方法和初始化后的Date_Span()对象来进行操作。结果相当容易猜测:
Wednesday, 21 June 2006 17:05:27
正如您能增加timespans, 也能减去他们。那, 实际上, 是subtractSpan () 方法可以达到这个目的 , 下面是其例子。
例子H
<?php
//包括类
include("Date.php");
//初始化对象
$d = new Date("2006-06-21 15:45:27");
//为时间加01:20
$d->addSpan(new Date_Span("0,1,20,0"));
//减去00:05
$d->subtractSpan(new Date_Span("0,0,5,0"));
// 输出格式化的串
echo $d->format("%a, %d %B %Y %T");
? >
这里, 我首先增加了一小时二十分钟, 和然后减去了五分钟。实际影响是一小时十五分钟的加法, 并且输出结果为:
Wednesday, 21 June 2006 17:00:27
正象上面的例子一样, PEAR 的 Date 类提供了直觉高效处理复杂日期的功能。如果您正在寻找一个在不同的地点之间转换时间戳的免费类,那么我热诚地把它推荐给您。关注一下,编程快乐!