虽然mysql中有自己的时间类型,但是为了兼容性考虑,php中一般用time函数取出unix时间戳。保存到数据库中。
1.unix时间戳
PHP中的time函数返回的就是unix timestamp,默认情况下PHP解析显示位格林威治标准时间。
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。
2.unix时间戳转化为人类识别日期
$str = date(“Y-m-d H:i:s”, time())得出的是格林威治时间,非中国时间。加上8小时即可。
$str = date(“Y-m-d H:i:s”, time()+8*3600)
将unix时间戳转化为中国时间:
3.人类识别日期转化为unix时间戳
$int = strtotime(“2014-11-8 08:12:24”);
4.数据库类型
由于mysql数据库的int范围和unix时间戳类型一样,所以直接crime int,即可。create time用int表示。看有些sql文件中显示 crime int(11),这个括号中的11是mysql默认的显示长度,而非数据大小的长度。
mysql中int默认为(-2 147 483 648,2 147 483 647),10位可以满足需求。
5.将当前时间写入数据库
$n = time();
$query = "insert into time_test values( $n )";
$ret = mysql_query($query, $con);
6.将数据库时间显示为中国时间
$query = "select ctime from time_test;";
$ret = mysql_query($query, $con);
if(!$ret)
{
die("query error: " . mysql_error());
}
while ( $arr = mysql_fetch_array($ret))
{
//数据库中取出的是字符串,为保险起见,转换为int类型。
echo date("Y-m-d H:i:s", intval($arr["ctime"]) + 8*3600) . "<br>";
1.unix时间戳
PHP中的time函数返回的就是unix timestamp,默认情况下PHP解析显示位格林威治标准时间。
是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。
2.unix时间戳转化为人类识别日期
$str = date(“Y-m-d H:i:s”, time())得出的是格林威治时间,非中国时间。加上8小时即可。
$str = date(“Y-m-d H:i:s”, time()+8*3600)
将unix时间戳转化为中国时间:
3.人类识别日期转化为unix时间戳
$int = strtotime(“2014-11-8 08:12:24”);
4.数据库类型
由于mysql数据库的int范围和unix时间戳类型一样,所以直接crime int,即可。create time用int表示。看有些sql文件中显示 crime int(11),这个括号中的11是mysql默认的显示长度,而非数据大小的长度。
mysql中int默认为(-2 147 483 648,2 147 483 647),10位可以满足需求。
5.将当前时间写入数据库
$n = time();
$query = "insert into time_test values( $n )";
$ret = mysql_query($query, $con);
6.将数据库时间显示为中国时间
$query = "select ctime from time_test;";
$ret = mysql_query($query, $con);
if(!$ret)
{
die("query error: " . mysql_error());
}
while ( $arr = mysql_fetch_array($ret))
{
//数据库中取出的是字符串,为保险起见,转换为int类型。
echo date("Y-m-d H:i:s", intval($arr["ctime"]) + 8*3600) . "<br>";
}
<完>