首页 >后端开发 >php教程 >php日期转换int类型

php日期转换int类型

巴扎黑
巴扎黑原创
2016-11-23 11:40:272169浏览

 $a="2001-5-2"; 
   $date = explode('-',$a); 
   // explode按照'-'来拆分字符串,将拆分后的数据放入数组中,即$date 
   // $date[0] = 1997,$date[1] = 3,$date[2] = 2 
   $timestamp = mktime(0,0,0,$date[1],$date[2],$date[0]); 
   

   echo $timestamp+(3600*8)."
";//时间差8小时计算 
   //echo date('Y-m-d H:i:s',$timestamp).'
'; 
   
   echo date('Y-m-d h:i:s',$timestamp).'
'; //h:i:s 12小时 
   
    //echo date('Y/m/d H:i:s',$timestamp+(3600*24)); //日期计算 
例子 1. time() 例子 

[color=Green]$nextWeek = time() + (7 * 24 * 60 * 60);
// 7 days; 24 hours; 60 mins; 60secs
echo 'Now: '. date('Y-m-d') ."\n";
echo 'Next Week: '. date('Y-m-d', $nextWeek) ."\n";
?> 

上例的输出类似于: 

Now: 2005-03-30 
Next Week: 2005-04-07 



PHP 日期转换 
MySQL 在资料库时间格式方面,最主要常见的两种储存方式,一种就是 MySQL 预设 datetime,显示的格式就会像是 2009-11-03 20:10:43,另一种就是存成 UNIX time 格式,可以设定為 int(11),这两种其实都可以使用,在 phpBB2 是採用后者的方式,因為 open source 要支援多种资料库,但是又要统一程式码,所以乾脆用 UNIX 的时间标记,这样比较好转换时区,如果使用 UNIX 格式,可以利用 time() 函式来取的。 


# 得到目前系统 UNIX 时间 
echo time(); 
# 下个礼拜时间 
$nextWeek = time() + (7 * 24 * 60 * 60); 
# 7 days; 24 hours; 60 mins; 60secs 
# 另一种可以用 mktime 来取得系统 UNIX 时间 
# 今天日期的 UNIX 时间 
echo mktime(0,0,0, date("Y"),date("m"),date("d")); 
所以我们可以存放到 mysql 资料库,利用 time() 来 INSERT,接下来如何显示时间:date() 函式 

# 利用 date() 函式 
$time = time(); 
echo date("Y-m-d H:i:s", $time); 
$nextWeek = time() + (7 * 24 * 60 * 60); 
echo date("Y-m-d H:i:s", $nextWeek); 
如果资料库格式用 datetime,那取出来的值必定是 Y-m-d H:i:s 格式,那如何转成 UNIX time 呢,可以用 strtotime 


# 将标准时间放入第一参数 
echo strtotime("2009-10-10 20:22:10"); 
echo strtotime("now"); 
结论是 
1. 如果资料库用 int(11),就利用 date(), mktime(), time() 转换成时间格式 
2. 如果资料库用 datetime,就利用 strtotime() 转换成 UNIX time 来做日期相加减 

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn