如何转换格式如下的日期字符串:
m/d/yyyy H:i:s
或 mm/dd/yyyy H:i:s
并将其格式化为:
yyyy-mm-dd H:i:s
我可以将两个输入中的任何一个格式化为我想要的格式,但不能同时格式化。
function format_date($date){
return date('Y-m-d H:i:s',strtotime($date));
}
应该可以解决问题。
最简单的方法是先使用
strtotime
将其转换为 UNIX 时间,然后运行 strftime
...不是最佳实践,但它消除了很多潜在的格式解析问题:-)
你现在如何格式化它?如果您确定这些是您可能作为输入的唯一两种日期格式,那么您可以在正斜杠上使用
explode()
,然后如果 strlen()
在月份或日期上返回 1,请添加 0当您创建 yyyy-mm-dd
字符串时。
但是,如果您不能保证这些是您唯一的两种输入格式,那么我会使用
strtotime()
将其转换为纪元,然后使用 date()
将其格式化为您想要的格式。处理命中稍大,但代码更通用。