PHP和Mysql的Timestamp互换
2015-08-11 09:45
597 查看
在mysql中有三种时间字段类型:
DATETIME,DATE和TIMESTAMP。
DATETIME以YYYY-MM-DD HH:MM:SS格式的字符串来保存数据;
DATE则是只有年月日以YYYY-MM-DD形式的字串;
TIMESTAMP类型和PHP中的TIMESTAMP类型名字一样,但是两者基本上是不同的。
PHP是延用了UNIX时间签的类型为一个整数, 而在mysql中TIMESTAMP字段则是随着记录变化而一个
自动更新为当时时间的DATETIMP字段。在mysql4.1版本之后TIMESTAMP格式DATETIME格式基本上是一致了。
于是常常需要在php和msql中对两种格式的Timestamp进行转换。转换方法总结一下:
第一种方法:使用 date()和strtotime()函数
$mysqltime=date('Y-m-d H:i:s',$phptime);
$phptime=strtotime($mysqldate);
第二种方法:在查询语句中使用mysql函数转换:
UNIX_TIMESTAMP(DATETIME=>PHP TIMESTAMP)和
FROM_UNIXTIME(PHP TIMESTAMP=>DATETIME).
$sql="SELECT UNIX_TIMESTAMP(datetimefield) FROM table WHERE ...";
$sql="UPDATE table set datetimefield=FROM_UNIXTIME($phptime) WHERE ..";
第三种方法:就是mysql中使用整数字段来保存php的timestamp类型。
DATETIME,DATE和TIMESTAMP。
DATETIME以YYYY-MM-DD HH:MM:SS格式的字符串来保存数据;
DATE则是只有年月日以YYYY-MM-DD形式的字串;
TIMESTAMP类型和PHP中的TIMESTAMP类型名字一样,但是两者基本上是不同的。
PHP是延用了UNIX时间签的类型为一个整数, 而在mysql中TIMESTAMP字段则是随着记录变化而一个
自动更新为当时时间的DATETIMP字段。在mysql4.1版本之后TIMESTAMP格式DATETIME格式基本上是一致了。
于是常常需要在php和msql中对两种格式的Timestamp进行转换。转换方法总结一下:
第一种方法:使用 date()和strtotime()函数
$mysqltime=date('Y-m-d H:i:s',$phptime);
$phptime=strtotime($mysqldate);
第二种方法:在查询语句中使用mysql函数转换:
UNIX_TIMESTAMP(DATETIME=>PHP TIMESTAMP)和
FROM_UNIXTIME(PHP TIMESTAMP=>DATETIME).
$sql="SELECT UNIX_TIMESTAMP(datetimefield) FROM table WHERE ...";
$sql="UPDATE table set datetimefield=FROM_UNIXTIME($phptime) WHERE ..";
第三种方法:就是mysql中使用整数字段来保存php的timestamp类型。
相关文章推荐
- 一个关于if else容易迷惑的问题
- MySQL中的integer 数据类型
- MySQL存储过程
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- JSP/PHP基于Ajax的分页功能实现
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- MySQL 备份和恢复策略
- mac下安装mysql(转载)