Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 解析数据格式_Php_Date_Time - Fatal编程技术网

Php 解析数据格式

Php 解析数据格式,php,date,time,Php,Date,Time,我目前正在使用PHP和YQL从一个网站上抓取内容。我需要将一个笨拙的日期格式转换为UNIX时间戳,以便将其格式化为与MySQL兼容的日期。我试过使用strotime,但没有用。也许正则表达式就是答案 日期示例 Dan使用substr分解日期组件,并使用STROTIME将其重新组合在一起 <?php strtotime('20'. substr($time, 5, 2). '-'. substr($time, 2, 3). '-'. substr($time, 0, 2)); ?>

我目前正在使用PHP和YQL从一个网站上抓取内容。我需要将一个笨拙的日期格式转换为UNIX时间戳,以便将其格式化为与MySQL兼容的日期。我试过使用strotime,但没有用。也许正则表达式就是答案

日期示例


Dan使用substr分解日期组件,并使用STROTIME将其重新组合在一起

<?php
strtotime('20'. substr($time, 5, 2). '-'. substr($time, 2, 3). '-'. substr($time, 0, 2));
?>

使用substr分解日期组件,并使用strotime将其重新组合在一起

<?php
strtotime('20'. substr($time, 5, 2). '-'. substr($time, 2, 3). '-'. substr($time, 0, 2));
?>
注意:strtime在Windows上不可用

一种解决方案是使用:

然后您可以将值传递给:

注意:strtime在Windows上不可用

一种解决方案是使用:

然后您可以将值传递给:


如果您使用的是PHP5.3+

那么这个功能就非常适合你的需要了

$date = DateTime::createFromFormat('dMy', '08Dec10');
然后,如果需要不同格式的日期,您可以对日期执行任何操作:

echo $date->format('Y-m-d');
如果您能够使用DateTime函数(5.2+中提供的一些函数以及5.3中添加的更多函数),那么您应该这样做。与其他功能解决方案相比,DateTime方法更具可读性


此外,在所有解决方案中,无论是功能性的还是使用DateTime对象,都要检查返回值。createFromFormat和strTime在出现错误时都返回false。因此,您可以记录错误并确定问题所在。

如果您使用的是PHP5.3+

那么这个功能就非常适合你的需要了

$date = DateTime::createFromFormat('dMy', '08Dec10');
然后,如果需要不同格式的日期,您可以对日期执行任何操作:

echo $date->format('Y-m-d');
如果您能够使用DateTime函数(5.2+中提供的一些函数以及5.3中添加的更多函数),那么您应该这样做。与其他功能解决方案相比,DateTime方法更具可读性


此外,在所有解决方案中,无论是功能性的还是使用DateTime对象,都要检查返回值。createFromFormat和strTime在出现错误时都返回false。因此,您可以记录错误并确定问题所在。

substr$string,0,2;substr$string,2,2。。。。?我也会做substr路由。substr$string,0,2;substr$string,2,2。。。。?我还想做substr路由。这似乎是最优雅的选项,但遗憾的是,windows服务器不支持strtime函数。这似乎是最优雅的选项,但遗憾的是,windows服务器不支持strtime函数。