2011-09-30 77 views
3

我试图使用strtotime将格式为Jan 14th 2011的日期字符串转换为格式2011-01-14,但它不起作用。将日期字符串转换为日期

这种格式不适用于strtotime,如果是这样,我该如何转换它。这个月一直是三字母格式,如一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月

+0

我认为这不是!你必须改变你的输入日期格式! – Rikesh

+1

我在这里测试,它工作得很好。日期(“Y-m-d”,strtotime(“2011年1月14日”))=“2011-01-14”我没有看到问题。 – lepe

+0

你是什么意思“它不工作”?你有错误吗?或者转换不正确? – Lee

回答

4
$date_str = "Jan 14th 2011"; 
$date = date_parse_from_format('M jS Y', $date_str); 

echo $date->format('Y-m-d'); 
+0

嘿,这就像你读我的想法(除了我使用'DateTime :: createFromFormat()')。 –

+0

不知道你可以做到这一点。你生活和学习...... – GEMI

0

strtotime或类似的解决方案需要对每个用例稍作修改。如果你想进一步,并有一个永久的解决方案,将原始字符串日期转换为时间格式,你可以检查这个项目,我做了https://github.com/raimonbosch/date.extraction我使用正则语法来检测所有种类的日期格式。

+0

当你链接到你自己的项目时,你应该透露这是你的项目的事实。从常见问题解答:“但是,您必须在您的答案中公开您的联系。” – ajacian81

+0

我刚刚更改了它。 – raimonbosch