2013-04-17 80 views
1

我尝试插入rss pubdate到我的MySQL数据库。日期格式为:插入rss pubdate到MySQL数据库

Tue, 16 apr 2013 17:04:08 UT 

我尝试使用不同的函数来格式化这个pubdate,但是我在日期UT时区有问题。我试过的功能:

strftime("%a, %d %b %G %H %M %S", strtotime($pubdate)); 
date_create_from_format('D, d M Y G:i:s U', $pubdate); 

有人能帮帮我吗?

+0

什么错误(S),你接收?你试图插入pubdate的列的数据类型是什么? –

+0

我的日期保存在mysql下的0000-00-00 00:00:00 – user1809753

+0

当我执行下面的函数时我得到警告:date_format()期望参数1是DateTime。 $ date date_create_from_format('D,d M Y G:i:s','Tue,2013年4月16日17:04:08 UT'); – user1809753

回答

1

你试图插入mySQL DateTime字段吧? 所以你的目标是让它成为这种格式(YYYY-MM-DD HH:MM:SS):之后,你应该得到$

$rssdate = "Tue, 16 apr 2013 17:04:08 UT"; 
$parsed = strptime($rssdate,'%a, %d %b %Y %H:%M:%S %Z'); 
$sqldate = date("Y-m-d H:i:s", mktime($parsed['tm_hour'], $parsed['tm_min'], $parsed['tm_sec'], $parsed['tm_mon']+1, $parsed['tm_mday'], 1900+$parsed['tm_year'])); 

你可以试试这个用strptime

2013-04-16 17:04:08 

注意到一个值,该UT会因为DateTime字段被丢弃不能够处理它sqldate。如果你真的需要它,那么只要你愿意就把你的行改成一个String类型。

另一件事,我也尝试过使用date_create_from_format,但它似乎不能识别4月份为'apr',因为在格式中它需要像'Apr'这样的大写。