将前往值958905820
而此时的工夫为2000年5月21日12时43分。
你或许会说这相当不错。当这对我毫无匡助,或只要一点匡助。在PHP中,对日期处置的函数都必需用到由time()前往的工夫戳值。同时,因为PHP在Unix和Windows体系中均利用一样的工夫戳值,这就答应你不需求修正代码便可在分歧的体系间移植。别的的一个优点是time()函数前往的是一个整数,你可以将其作为整数字段或文本字段存入数据库,而不用利用出格的日期/工夫字段。
你已根基懂得了Unix的工夫戳值,如今让咱们来展现它的实践用处。
改动日期显示的体例-日期和工夫的显示模式
PHP供应两个举措来将Unix的工夫戳值转换成为有效的数据。第一个是date()函数。这个函数有两个参数-第一个字符串用于设定你所但愿前往的格局,第二个为Unix的工夫戳值。
格局化字符通同过一些复杂的特别格局化字符来显示你所但愿看到的格局的日期和工夫。假定你但愿日期以如许的格局显示“18h01 Sunday 21 May”。
咱们需求对字符串中的每局部利用一个特别格局化字符,你可以从PHP手册中日期和工夫函数库中找到。如许的特别格局化字符数目很多,他们所暗示的相似于礼拜几、月的英文名、用2位或4位数暗示的年份,是不是是上午(AM)或下战书(PM)和其他。关于这个例子咱们需求的特别字符为:
‘H' -24 小时制的小时
‘i'- 分钟
‘l'- 礼拜几的英文全名
‘d'- 本月的第几日
‘F'- 月份的英文全名
因而咱们的格局化字符串为”Hhi l d F”, PHP代码为: 复制代码 代码以下:
<?
echo date ("Hhi l d F" ,time());
?>;
当咱们履行这段代码,咱们发明咱们所失掉的了局为:
180609 Sunday 21 May
如许的了局看起来有些奇异。让咱们再查一下PHP手册,本来'h'所代表的是12 小时制的小时数。这再次证实了一句真谛:“盘算机只做你所告知它该做的,而不是你想要它做的”。咱们有两个选择。第一个是在h前利用本义字符“\”:
echo date ("H\hi l d F", time());
咱们失掉如许的了局:
18h12 Sunday 21 May
这恰是咱们所要的。但假如咱们在一个非常庞杂的句子中需求包括日期和工夫,咱们是不是需求对每一个字符利用本义字符?
谜底固然是不。咱们利用另外一个函数strftime()。
strftime()有两个优点。
第一个优点咱们其实不在本文会商局限内-假如你利用setlocale()函数,你可以经由过程strftime失掉响应言语的月份的称号。
别的的一个优点是你可以将出格的日期和工夫的格局化字符包括在你的字符串中。这同时也意味着不管你是不是要进修date()函数的一切特别格局化字符,你都必需进修一整套完整分歧的格局化字符。
strftime()任务的体例和date()没有甚么分歧,除特别格局化字符的后面必需添加一个百分号%。假如用strftime()函数,后面例子的代码以下: 复制代码 代码以下:
<?
echo strftime ("%Hh%M %A %d %b" ,time());
?>;
了局为:
18h24 Sunday 21 May
这或许看起来将简化繁,但思索一下假如你所需求的显示的为
"Today is Sunday 21 May 2000. The time is somewhere close to 18h24."
我想利用date()函数无疑使人感应腻烦。
在入手下手的时分,我说起咱们有两种体例可以从Unix工夫戳值中失掉有效的数据。咱们方才懂得了date()和strftime()。另外一个getdate()。这个函数只需求Unix 的工夫戳值作为参数,而函数的前往值为日期和工夫的数组。
上面是一个例子: 复制代码 代码以下:
<?
$date_time_array = getdate (time());
echo $date_time_array[ "weekday"];
?>;
前往的了局为:
Sunday
除"weekday",该数组的其他局部为:
"seconds" C秒
"minutes" C分
"hours" C小时
“mday" - 本月的第几天
"wday" -本周的第几天(数字)
"mon" -月(数字)
"year" C年
"yday" - r今年的第几天(数字)
"month" -月份全名
咱们如今可以失掉轻易识别的日期和工夫。那末其他呢?
**转换如今的日期为Unix的工夫戳值
凡是你必需处置一些日期或工夫格局的数据。翻开M$的一个Access数据库,一切的日期都以YYYY/MM/DD的格局存储,到场今朝的日前即为2000/05/27。Mktime()函数可以将一个工夫转换成Unix的工夫戳值。
函数的格局为:int mktime(int hour, int minute, int second, int month, int day, int year, int [is_dst] );
从左往右你必需供应小时、分、秒、月、天和年。最初一个参数用于指定你是不是处于夏令时,此参数是可选的,所以咱们将疏忽它。
代码以下: 复制代码 代码以下:
<?
echo mktime (0, 0,0 ,5, 27,2000 );
?>;