PHP提供了一组日历函数,这些函数可以实现日期在不同的日历系统之间的转换。我们使用的主要日历有Gregorian、Julian和Julian Day Count。
Gregorian日历是大多数西方国家目前所使用的历法。Gregorian中的日期1582年10月15日,1582与Julian日历中的1582年10月5日等效。而在此日期以前,Julian日历是人们更常用的历法。不同的国家将原日历转换为Gregorian日历的时期不同,有些国家甚至在20世纪早期才转换。
除了这两个日历之外,我们可能还没有听说过Julian Day Count日历。该日历与UNIX时间戳有许多相似之处。它是从大约公元前4000年起的某个日期开始计算的日子数,自身并不是特别有意义,但是它对于格式之间的转换却非常有用。要将一个日历格式转换到另一个日历格式,我们首先要转换成Julian Day Count,然后再将其转换成要输出的日历。
要在UNIX下使用这些函数,必须已经在PHP中编译了日历扩展库,通过--enable-calendar选项实现。这些日历扩展库已经内置在Windows系统的安装中。
要体验这些函数,我们首先要了解这些可能用来将日期从Gregorian日历转换到Julian日历的函数原型:
int gregoriantojd(int month,int day,int year)
string jdtojulian(int julianday)
要转换一个日期,需要调用这两个函数:
$jd=gregoriantojd(9,18,1582);
echo jdtojulian($jd);
以上代码将以MM/DD/YYYY格式显示Julian日期。
这些函数的变体可以实现日期格式在Gregorian、Julian、French以及Jewish日历和UNIX时间戳之间转换。