现有一变量$time, 可能是时间类型的,可能是一个unix时间戳,即 $time = '2011-12-25 00:11:20'; 或者 $time = 1324742400.
现在我想把统一做一个转换,即如果是时间类型的,就把它用strtotime($time)函数转换成Unix时间戳,如果不是同样用这个函数strtotime($time)会返回false.
立即学习“PHP免费学习笔记(深入)”;
采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压
0
那么我用问号表达式$time = strtotime($time) ? strtotime($time) : $time;能否实现这个需求,有没有更简洁的形式啊,总感觉别人不是这么写的呢?
现有一变量$time, 可能是时间类型的,可能是一个unix时间戳,即 $time = '2011-12-25 00:11:20'; 或者 $time = 1324742400.
现在我想把统一做一个转换,即如果是时间类型的,就把它用strtotime($time)函数转换成Unix时间戳,如果不是同样用这个函数strtotime($time)会返回false.
立即学习“PHP免费学习笔记(深入)”;
那么我用问号表达式$time = strtotime($time) ? strtotime($time) : $time;能否实现这个需求,有没有更简洁的形式啊,总感觉别人不是这么写的呢?
别人不这么写主要原因估计是,你这么写如果 time 的确是时间格式的话,会执行两次 strtotime 函数。
可以使用临时变量解决这个问题
$temp = strtotime($time); $time = $temp ? $temp : $time;
如果是 PHP 5.3 以上,还可以使用
$time = strtotime($time) ?: $time;
你的问题有个地方我不确定,如果是字符串时间戳,要求格式一定是 Y-m-d H:i:s 格式么?
$time = is_numeric($time) ? $time : strtotime($time);
其实也不需要三元操作符,直接使用&&就可以了
!is_numberic($time) && $time = strtotime($time);
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号