我目前正在使用PHP和YQL从网站上抓取内容。我需要将尴尬的日期格式转换为UNIX时间戳,以便将其格式化为与MySQL兼容的日期。我试过使用strtotime(),但没有用。也许正则表达式才是答案?
日期示例
08Dec10
06Aug10
29Jul10
07Jun10
04May10丹
发布于 2011-03-07 23:19:50
如果您使用的是PHP 5.3+
那么日期::createFromFormat函数就可以很好地满足您的需要。
$date = DateTime::createFromFormat('dMy', '08Dec10');然后,如果您需要以不同的格式处理日期,可以做任何您想做的事情:
echo $date->format('Y-m-d');如果您曾经能够使用DateTime函数,可以从5.2+中获得几个函数,并在5.3中添加更多的函数,那么您应该这样做。与其他功能解决方案相比,DateTime方法更具可读性。
同样,在所有解决方案中,无论是函数式还是使用DateTime对象,都要检查返回值。createFromFormat和strptime都会在出错时返回false。这样您就可以记录错误并确定问题所在。
发布于 2011-03-07 23:17:22
发布于 2011-03-07 23:16:57
使用substr分解date组件,并使用strtotime将其重新组合起来。
<?php
strtotime('20'. substr($time, 5, 2). '-'. substr($time, 2, 3). '-'. substr($time, 0, 2));
?>https://stackoverflow.com/questions/5226430
复制相似问题