带或不带格式化日期的前导零在PHP

问题描述:

你会如何转换将被格式化像datestring ...带或不带格式化日期的前导零在PHP

m/d/yyyy H:i:smm/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)); 
    } 

应该这样做。

+0

太简单了!我忘了php日期功能有多棒。我一直在使用Javascript .... – 2010-02-10 00:44:19

+0

哈哈我正在使用一些可笑的精心制作的字符串来取代其中的任何一个。 – 2010-02-10 00:46:51

最简单的方法是简单地将其先用strtotime转换为UNIX时间,然后在其上运行strftime后来......不是BES的做法,但它消除了潜在的格式解析问题很多:-)

是如何你现在格式化它?如果您确定这些是唯一可以作为输入的两种日期格式,那么您可以在正斜杠上使用explode(),然后如果strlen()在月份或日期中返回1,则请添加0创建您的yyyy-mm-dd字符串。但是,如果您不能保证这些是您唯一的两种输入格式,那么我会使用strtotime()将其转换为纪元,然后使用date()按照您的要求对其进行格式化。处理命中稍大,但更通用的代码。