转换大量日期的有效方法-PHP
我正在为我的申请做准备。 我有一个文件,非常简单但很大.txt。它有大约25万行,每行中我需要将少数列的日期格式更改为“Y-m-d” 我使用了转换大量日期的有效方法-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一次,然后只更改它的值?我在谷歌上
strotime()
和date()
,但是这方面有一些问题,我开始使用classDateTime
,现在一切都很好,但是导入它需要很多时间(比使用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