最近公司接的一个手机APP项目里,要用php做一个后台内容管理,但手机服务端程序用java+mysql开发,涉及到一个php与java时间戳精度不同的问题,java的时间戳是13位,而php的时间戳是10位,所以在读写数据表日期字段的时候出现了不兼容,写了一个转换函数,学习备忘!
自定义函数:
/* 功能:java的13位时间戳在php中的读写转换
* 参数:$time-时间戳,$pattern-转换模式
* 返回:字符串
*/
function php_java_time($time="",$pattern="w")
{
if ($pattern=="r") //读出
{
return date("Y-m-d",substr($time,0,strlen($time)-3));
}
else if($pattern=="w") //写入
{
if(isset($time) && !empty($time))
{
return strval(strtotime($time))."000";
}
else
{
return strval(strtotime(date("Y-m-d H:i:s")))."000";
}
}
}
说明:在php读的时候,去掉时间戳后3位(不是四舍五入),在写入的时候,转换时间戳后在尾部加上3位“000”
延伸阅读:java时间戳和PHP时间戳的转换[10位和13位]