我正在使用可能不标准的日期格式,因为strtotime
未正确解析它。格式为Sun Nov 16 10:10:10 GMT 2010
。我正在尝试使用2010-11-16
将其转换为date('Y-m-d', strtotime($date)
但不起作用。有没有办法可以对原始日期字符串进行修改,使其接近标准格式,以便strtotime
接受它?
答案 0 :(得分:3)
http://php.net/manual/en/function.strtotime.php
该函数需要一个包含英文日期的字符串 格式并将尝试将该格式解析为Unix时间戳( 自1970年1月1日00:00:00 UTC以来的秒数,相对于 现在给出的时间戳,或者现在没有提供当前时间。
修改强>
我相信你会通过dateTime课程实现你想要的目标 http://www.php.net/manual/en/class.datetime.php
编辑2
正如@Mark Baker评论的那样,正确使用的函数是DateTime::createFromFormat
,您可以在此链接中看到:
http://www.php.net/manual/en/datetime.createfromformat.php
答案 1 :(得分:0)
strtotime()
确实知道如何解析您的格式Sun Nov 16 10:10:10 GMT 2010
并正确解析它。 demo
您的示例问题是日期2010-11-16
不是星期日,而是星期二,这就是您first Sunday from date 2010-11-16
2010-11-21
的原因strtotime()
。 demo
DateTime::createFromFormat
将返回与{{1}}相同的日期时间。 demo