网站制作学习网PHP→正文:php日期转换
字体:

php日期转换

PHP 2010/9/16 17:44:54  点击:不统计


做了几个php项目,每个里面都有php日期的转换,而且用mktime转换起来比较麻烦.找一个统一的日期转换是比较难的.所以想了想把php日期转换成unix时间,然后再进行转换.
举例
$foraspcn = "2010-09-14";或者其他格式的首先得转换成标准的格式,然后再进行转换
<?php
function changedate($datestr,$splitstr){//$datestr日期标准可以是1999-09-09 12:12:12 也可以是1999-9-9 $splitstr是分割日期符号,不管什么时间变化一定要注意1999-09-09 和1999-9-9 在转换unix时间是不一样的.一定要注意.本函数一律实用1999-9-9的形式.在mysql数据库中的sql语句UNIX_TIMESTAMP 也是转换时间时有区别的.www.forasp.cn原创.
$timeall = explode(" ",trim($datestr));
$temp = explode($splitstr,$timeall[0]);
$tyear = ((int)$temp[0]);
$tmonth = ((int)$temp[1]);
$tday = ((int)$temp[2]);
if(count($timeall)>1){
$temp2 = explode(":",$timeall[1]);
$thour = $temp2[0];
$tmini = $temp2[1];
$tsec = $temp2[2];
}else{
$thour = 12;
$tmini = 0;
$tsec = 0;
}
echo $thour.$tmini.$tsec.$tmonth.$tday.$tyear;
return mktime($thour,$tmini,$tsec,$tmonth,$tday,$tyear);
}
function changedate2($unixnum){
return date("Y-m-d h:i:s",$unixnum);
//如果想返回年月日则return date("Y-m-d",$unixnum);即可
}
echo changedate("2010-09-14","-").changedate2(1284436800);
?>
上面代码输出:1284436800 2010-09-14 12:00:00
一定要注意1999-09-09 和1999-9-9 在转换unix时间是不一样的
举例:
<?
echo date("Y-m-d h:i:s")."<br>";
echo $t=date("U")."<br>";
echo date("Y-m-d h:i:s",$t)."<br>";
echo mktime(05,19,54,09,16,2010)."<br>";
echo date("Y-m-d h:i:s",(1260911994))."<br>";
?>
结果:
2010-09-16 05:19:54
1284628794
2010-09-16 05:19:54
1260911994
2009-12-16 05:19:54
这里很是不解是怎么回事,差的时间忒长了!
日常的时间转换比较麻烦.在前的一篇文章也有php中的日期格式转换.参考:http://www.forasp.cn/html/1697.html

·上一篇:mysql日期判断 >>    ·下一篇:php读取xml >>
推荐文章
最新文章