PHP 5.3的date_create_from_format()函数

网络整理 - 08-17

PHP的其中一位主要贡献者Derick Rethans在他的网志上表示,PHP 5.3将会提供一个比strtotime()和date_create()函式更有弹性的新函式date_create_from_format()与及 DateTime的新静态成员函式createFromFormat(),回应PHP社群长期以来提出的要求。

strtotime()和date_create()一直只接受GNU的日期和时间格式,其中包括美国的mm/dd/yyyy,很多其他语言和国家的格式,包括英式的dd/mm/yyyy等均不能解读,刚结束的伦敦PHP会议便有出席者对此大表不满,Derick Rethans于是决定在快将推出的PHP 5.3加入这两个更有弹性的日期时间转换函式,例如函式date_create_from_format()将接受两个引数,第一个引数表示格式,第二各引数是日期时间字串,例如:

<?php
$dt = date_create_from_format( 'd/m/Y', "02/03/2008" );
echo $dt->format( 'd/m/Y' ), "\n";
?>

若果提供的格式不能用来解读日期时间字串,这个函式会送回false,我们跟着可以调用另一个新函式date_get_last_errors()来检视字串哪些部分出错,非常方便。至于格式的表达式,则跟date()所使用的没有分别。

Derick Rethans标示新函式的使用说明很快便会在官方文档网站内公布。
 
===============================================================

同步贴上,新常量__DIR__
 
Lars Strojny在他的个人网志内介绍了将会在PHP 5.3出现的新常数__DIR__,它将会继__LINE__、__FILE__、__FUNCTION__、__CLASS__、__METHOD__ 之后成为「魔法常数」(magic constant)的最新成员,实作上__DIR__相当于dirname(__FILE__),例如在档案 /var/www/host/app/foo.php内调用__DIR__,得到的结果是/var/www/host/app。

运用上魔法常数是在编译阶段解读,并非像dirname()等函式在执行阶段解读,所以执行上快得多。