【发布时间】:2013-03-18 13:36:02
【问题描述】:
我有一个以英国格式输入日期的表格,我需要将其转换为
yyyy-mm-dd
例如输入的日期是:31/03/2013,我想将其转换为 '2013-03-31' 以进行数据库插入。
我正在使用以下仅在某些时候奇怪的工作:
$dateInput = $mysqli->real_escape_string($_POST['date']);
$show_date = date('Y-m-d', strtotime($dateInput));
有没有更好的方法来做到这一点?
【问题讨论】:
-
你为什么要转义日期值......它真的有任何用途吗?
-
什么时候不能正常工作?此外,转义似乎不是一个好主意(或者至少如果日期格式正确,它似乎没用)。也许您应该考虑使用正则表达式来检查初始格式。
-
@Darren 有时这不起作用的原因是因为 PHP 期望日期为美国格式。如果有的话,您必须重新安排它,然后再将其交给
strtotime()。 stackoverflow.com/questions/4163641/… -
@Uby 我逃避了一切,所以一些****不会尝试注入
-
@Darren - 在这种情况下是多余的,因为您将字符串转换为日期时间序列化然后再返回 - 您可以控制...如果您认为可以注入某些东西,那么逃逸不会不要完全按照你的想法去做