欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php日期转换int类型

程序员文章站 2022-05-06 09:02:05
...
$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 来做日期相加减