用PEAR Date进行日期时间处理

2016-01-29 13:24 8 1 收藏

用PEAR Date进行日期时间处理,用PEAR Date进行日期时间处理

【 tulaoshi.com - PHP 】

  PHP内置了日期和时间的处理函数, 这些设计使你很容易得得到您所需要的格式, 或者使用它进行演算或对用户进行显示。但是, 如果您会想做某事被复杂化, 有很多种方法的。

  这是一个在网页中显示时间的简单例子。使用 PHP的date()函数可以读取服务器的时间和以一个具体格式显示时间。但如果您想显示时间在一个另外地点- 例如, 如果您的公司们于不同的国家,但您想从位于一个另外国家的服务器上想看到"家" 时间,而不是当地时间? 当然, 您必须计算出二个地方的时差然后执行一些日期算术调整为不同的时区。时差是很重要的, 您需要考虑到使用前一天新时间还是使用以后的时间, 记录结束这月和闰年限制。

  和你想像的一样, 如果算术能迅速得到非常复杂的时区转换,何必要您手工做它。PHP 有自带的时区功能函数, 但这些不是特别直觉的,并且不太符合时间习惯。一个更快的选择使用PEAR日期处理功能来简单的对时区执行这些转换。

  这个讲解将教您怎么用PEAR的日期功能来转换在时区之间转换时间。假设, 您已经运行了Apache 和 PHP 并且PEAR日期功能正确地被安装了。


  开始
  我们从基本开始- 创建和使用Data对象。创造一个PHP 脚本来运行以下代码:

  例子A
<?php
//包括类
include("Date.php");

//初始化对象
$d = new Date("2006-06-21 15:45:27");

//检索日期
echo $d-getdate();
?

这相当简单- 包含类, 初始化一个 Date() 对象与日期/时间串, 和然后使用 getDate() 方法显示您插入的时间。下面是输出:
2006-06-21 15:45:27

  您若想要得到不同格式的日期呢? 如果格式依是标准的, 譬如ISO 格式, 简单地使用 getDate()加参数来完成就行了。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

  例子B
<?php
//包括类
include("Date.php");

//初始化对象
$d = new Date("2006-06-21 15:45:27");

//检索日期作为时间戳
echo  $d-getdate(DATE_FORMAT_ISO_BASIC);
?
这种情况下依照标准ISO 格式输出时间,结果如下。
20060621T154527Z

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

如果您会使用一个自已习惯的格式, 您可以使用 format() 方法。PHP 的 date() 函数一样, 这个方法接受表明的一系列的格式,这些格式用来指定怎么对日期进行格式化。 下面是一个例子:

  例子C
<?php
//包括类
include("Date.php");

//初始化对象
$d = new Date("2006-06-21 15:45:27");

//检索日期如同格式化的串
echo $d-format("%A, %d %B %Y %T");
?
输出结果如下:

Wednesday, 21 June 2006 15:45:27

  在时区之间转换
  现您已掌握了一些基本的, 现在我们来谈论时区。一旦您使用一个 Date() 对象初始化, 转换从一个时区到另一个时区只需要简单的二步:

1.告诉Date对象您从哪个时区转换, 使用 setTZByID() 方法。
2.然后, 告诉Date对象您希望转换成哪个时区, 以 convertTZByID() 方法。

  例子D
<?php
//包括类
include("Date.php");

//初始化对象
$d = new Date("2006-06-21 10:36:27");

//设置要转换时区
$d-settzbyid("GMT");

//转换到设置的时区
$d-converttzbyid("IST");

//得到转换的日期/时间
echo $d-format("%A, %d %B %Y %T");
?

  在这个例子中, 我试图从格林威治标准时间(格林维志时间) 转换成印第安标准时间(IST) 。印度时间大约在格林威治时间5.5 小时之前, 为什么例子输出的结果是:

Wednesday, 21 June 2006 16:06:27
很简单, 不是吗? 下面是另外一个例子(例子E)将展示如果处理闰年和月。

   例子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->

来源:http://www.tulaoshi.com/n/20160129/1490068.html

延伸阅读
mysql SELECT something FROM tbl_name WHERE TO_DAYS(NOW()) – TO_DAYS(date_col) = 30; DAYOFWEEK(date) 返回 date 的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的标准。 mysql SELECT DAYOFWEEK('1998-02-03′); - 3 WEEKDAY(date) 返回 date 的星期索引(0 = Monday, 1 = Tuesday, … 6 = Sunday): ...
标签: excel
Excel日期和时间函数 日期和时间函数 DATE 返回特定时间的系列数 DATEDIF 计算两个日期之间的年、月、日数 DATEVALUE 将文本格式的日期转换为系列数 DAY 将系列数转换为月份中的日 DAYS360 按每年360天计算两个日期之间的天数 EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数 EOMONTH 返回...
Sql Server中的日期与时间函数 1.  当前系统日期、时间     select getdate()  2. dateadd  在向指定日期加上一段时间的基础上,返回新的 datetime 值    例如:向日期加上2天    select dateadd(day,2,'2004-10-15')  --返回:2004-10-17 00:00:00.000 3. datedif...
标签: 服务器
linux date命令查看和设置时间详解   date命令 date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式) date 设置时间格式 命令中各选项的含义分别为: 代码如下: -d datestr, --date datestr 显示由datestr描述的日期 -s datestr, --s...
根据时间日期格式从字符串中解析日期时间 function StrToDtFmt(const S, Fmt: String; Dft: TDateTime): TDateTime; function StrToDtFmt(const S, Fmt: String; Dft: TDateTime): TDateTime; var   Pts: array[1..10] of Integer;   Wds: array[1..10] of Integer;   Vls: array[1..10] of Word;...

经验教程

683

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部