Strtotime()不适用dd/mm/yyyy格式

Strtotime()不适用dd/mm/yyyy格式

我真的很喜欢strtotime()函数,但是用户手册没有给出支持的日期格式的完整描述。strtotime('dd/mm/YYYY')不起作用,它只适用于mm/dd/YYYY格式。

如果我有约会dd/mm/YYYY格式,如何将其转换为YYYY-mm-dd?我可以用explode()但我认为有更好的解决方案。


慕姐4208626
浏览 466回答 3
3回答

胡说叔叔

以下是简化的解决方案:$date = '25/05/2010';$date = str_replace('/', '-', $date);echo date('Y-m-d', strtotime($date));结果:2010-05-25这个strtotime文献资料全文如下:的日期M/d/y或德米通过查看各个组件之间的分隔符来消除格式的歧义:如果分隔符是斜杠(/),然后是美国人M/d/y假设;而如果分隔符是破折号(-)或点(.),然后是欧洲人德米采用格式。

凤凰求蛊

您可以用以下方式解析来自定义格式的日期(从PHP5.3开始)日期:createFromFormat$timestamp = DateTime::createFromFormat('!d/m/Y', '23/05/2010')->getTimestamp();(旁白:!用于将非指定值重置为unix时间戳,即。时间是午夜。)如果您不想(或不能)使用PHP5.3,则将列出strtotime接受的可用日期/时间格式的完整列表。日期格式手册页。那一页更详细地描述了这样一个事实:m/d/Y推断出d/m/Y(但正如这里的答案所提到的,您可以使用d-m-Y, d.m.Y或d\tm\tY).在过去,我也曾求助于快速str_replace在另一个答案中提到,以及将日期字符串自解析为另一种格式,如$subject   = '23/05/2010';$formatted = vsprintf('%3$04d/%2$02d/%1$02d', sscanf($subject,'%02d/%02d/%04d')); $timestamp = strtotime($formatted);

慕娘9325324

来自STRTOTIME的书面说明:通过查看各个组件之间的分隔符,可以消除m/d/y或d-m-y格式中的日期歧义:如果分隔符是斜杠(/),则假定是美国的m/d/y;而如果分隔符是破折号(-)或点(.),则采用欧洲的d-m-y格式。事情就这么简单。
打开App,查看更多内容
随时随地看视频慕课网APP