您的位置:首页 > 编程语言 > PHP开发

php日期转换int类型

2012-07-18 10:21 841 查看
$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)."<br>";//时间差8小时计算
//echo date('Y-m-d H:i:s',$timestamp).'<br>';

echo date('Y-m-d h:i:s',$timestamp).'<br>'; //h:i:s 12小时

//echo date('Y/m/d H:i:s',$timestamp+(3600*24)); //日期计算
例子 1. time() 例子

[color=Green]<?php
$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 来做日期相加减
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: