隨著時間的推移,symfony 出現了一些問題。不幸的是,這不是我第一次遇到這種情況。有沒有人遇到過這個問題?如果是這樣,謝謝你的幫助。
控制器.php
if($xml = simplexml_load_file($feedUrl)) {
$result["chanel"] = $xml->xpath("/rss/channel/item");
foreach($result as $key => $attribute) {
$i=0;
foreach($attribute as $element) {
$ret[$i]['title'] = (string)$element->title;
$ret[$i]['category'] = (string)$element->category;
$ret[$i]['link'] = (string)$element->link;
$ret[$i]['pubDate'] = json_decode(json_encode($element->pubDate), TRUE);
$ret[$i]['enclosure'] = (array)$element->enclosure;
$ret[$i]['description'] = (string)$element->description;
$i ;
}
}
}
foreach ($ret as $feed){
$newnews = new Newsfeed();
$newnews->setTitle($feed['title']);
$newnews->setCategory($feed['category']);
$newnews->setLink($feed['link']);
$newnews->setDescription($feed['description']);
$newnews->setDate(date("Y-m-d h:i:sa", strtotime($feed['pubDate'][0])));
$newnews->setImage($feed['enclosure']['@attributes']['url']);
$newnews->setSource('2');
$entityManager->persist($newnews);
$entityManager->flush();
}
這個問題

uj5u.com熱心網友回復:
該date()函式回傳一個字串,因此這一行將不起作用:
$newnews->setDate(date("Y-m-d h:i:sa", strtotime($feed['pubDate'][0])));
您可能只使用:
$newnews->setDate(new \DateTimeImmutable($feed['pubDate'][0]));
uj5u.com熱心網友回復:
我以前遇到過這個問題。對我來說,當只使用 Dates(沒有時間)時,MySQLdoctrine annotations具有這種Date型別,但 PHP/Symfony 沒有。
正如 Chris 所提到的,該date()函式回傳一個字串,但DateTime類在這里是您的朋友。
即使它被稱為 DateTime,這個類也允許格式化,并且您確實可以,例如,只用它檢索一個日期。一個例子是:
$date = new DateTime('2000-01-01 12:30:25');
echo $date->format('Y-m-d');
或者在您的情況下,您也希望回傳時間部分:
$pubDate = new DateTime($feed['pubDate'][0])->format('Y-m-d h:i:sa');
$newnews->setDate($pubDate);
可以很容易地轉換為單線。
這將僅顯示您在format()函式中要求的內容。
不過有一個技巧。至少在我的國家,用斜線 ( /) 格式化日期是很常見的,但DateTime->format()不適用于,因此請記住這一點,如果要使用斜線,請在此處Y/m/d檢查正確的格式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/467720.html
