我试图使用strtotime
将格式为Jan 14th 2011
的日期字符串转换为格式2011-01-14
,但它不起作用。将日期字符串转换为日期
这种格式不适用于strtotime
,如果是这样,我该如何转换它。这个月一直是三字母格式,如一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月
我试图使用strtotime
将格式为Jan 14th 2011
的日期字符串转换为格式2011-01-14
,但它不起作用。将日期字符串转换为日期
这种格式不适用于strtotime
,如果是这样,我该如何转换它。这个月一直是三字母格式,如一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月
$date_str = "Jan 14th 2011";
$date = date_parse_from_format('M jS Y', $date_str);
echo $date->format('Y-m-d');
嘿,这就像你读我的想法(除了我使用'DateTime :: createFromFormat()')。 –
不知道你可以做到这一点。你生活和学习...... – GEMI
请参考这里:http://www.php.net/manual/en/datetime.formats.date.php
AFAIK,strtotime将英文文本日期或时间解析为Unix时间戳。
strtotime或类似的解决方案需要对每个用例稍作修改。如果你想进一步,并有一个永久的解决方案,将原始字符串日期转换为时间格式,你可以检查这个项目,我做了https://github.com/raimonbosch/date.extraction我使用正则语法来检测所有种类的日期格式。
当你链接到你自己的项目时,你应该透露这是你的项目的事实。从常见问题解答:“但是,您必须在您的答案中公开您的联系。” – ajacian81
我刚刚更改了它。 – raimonbosch
我认为这不是!你必须改变你的输入日期格式! – Rikesh
我在这里测试,它工作得很好。日期(“Y-m-d”,strtotime(“2011年1月14日”))=“2011-01-14”我没有看到问题。 – lepe
你是什么意思“它不工作”?你有错误吗?或者转换不正确? – Lee