转换大量日期的有效方法-PHP

转换大量日期的有效方法-PHP,php,mysql,datetime,optimization,Php,Mysql,Datetime,Optimization,我正在为我的申请做准备。 我有一个文件,非常简单但很大.txt。它有大约25万行,每行中我需要将少数列的日期格式更改为“Y-m-d” 我使用了strotime()和date(),但是这方面有一些问题,我开始使用classDateTime,现在一切都很好,但是导入它需要很多时间(比使用strotime和date时要多) 在$values[]中,我有一个字符串,例如2004年7月1日12:00AM 有没有更有效的方法来使用这个DateTime类?类似于定义$date一次,然后只更改它的值?我在谷歌上

我正在为我的申请做准备。 我有一个文件,非常简单但很大.txt。它有大约25万行,每行中我需要将少数列的日期格式更改为“Y-m-d”

我使用了
strotime()
date()
,但是这方面有一些问题,我开始使用class
DateTime
,现在一切都很好,但是导入它需要很多时间(比使用
strotime
date
时要多)

$values[]
中,我有一个字符串,例如
2004年7月1日12:00AM

有没有更有效的方法来使用这个
DateTime
类?类似于定义
$date
一次,然后只更改它的值?我在谷歌上搜索了一下,试图用
DateTime
以多种方式进行搜索,但没有发现任何感兴趣的东西

我仍在努力找出strotime()的错误所在,在某些情况下,它没有得到正确的日期并放入mysql表->
1969-12-31
。主要的问题是我从外部提供程序获取这个文件,它每天都由cron运行

文件中的一些日期的格式似乎很奇怪:
2013-01-30 15:04:30.717000000
,清理完后,开始正常工作,我可以使用strotime,当然比DateTime快

select unix_timestamp('2013-01-30 15:04:30.717000000');
-->

-->


也就是说,如果这注定要在MySQL数据库中,您可以将其存储为字符串,然后使用上面的代码以微秒的精度转换为
时间戳
日期时间

您可以始终循环通过
$values
,而不是写出每一行。如果您预先知道格式,那么可能会快一点。”我使用了strotime()和date()但这其中也存在一些问题——究竟是什么问题?strotime在解析像您的示例一样的日期格式时没有问题
Jul 1 2004 12:00AM
DateTime本质上要慢50%左右。也许你应该尝试解决strotime问题?不管它们是什么。我已经写了一个快速而肮脏的脚本(使用您自己的代码),它可以在aprox中存储和解析100万个日期。在我的电脑中使用7秒(不是特别高端)。你的服务器需要多长时间?
select unix_timestamp('2013-01-30 15:04:30.717000000');
1359587070.717000
select cast('2013-01-30 15:04:30.717000000' AS DATETIME(6));
2013-01-30 15:04:30.717000