如何使用CodeIgniter格式化日期

Jef*_*son 3 php codeigniter

我想知道我在这里做错了什么.我想date_published在我的查询中格式化该字段,并且我t_string syntax error在我的IDE中获得了一个.

$this->db->select('site_news_articles.article_title, site_news_articles.is_sticky,' date_format('site_news_articles.date_published, 'f jS, Y')');
Run Code Online (Sandbox Code Playgroud)

更新:

function getNewsTitles($category_id) {
    $this->db->select('site_news_articles.article_title, site_news_articles.is_sticky');
    $this->db->select("DATE_FORMAT(site_news_articles.date_published, '%M %e, %Y') as formatted_date", TRUE);
    $this->db->from('site_news_articles');
    $this->db->where('site_news_articles.news_category_id', $category_id); 
    $this->db->where('site_news_articles.is_approved', 'Yes');
    $this->db->where('site_news_articles.status_id', 1);
    $this->db->order_by('site_news_articles.date_published', 'desc');  
    $this->db->limit(10);
    $query = $this->db->get();
    return $query->result_array(); 
}
Run Code Online (Sandbox Code Playgroud)

错误号码:1064

您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在'FROM(site_news_articles)WHERE 附近使用正确的语法site_news_articles.news_category_id= 2 A'在第2行

选择site_news_articles.article_title,site_news_articles.is_sticky,DATE_FORMAT(site_news_articles.date_published,'%M%E,%Y')如FORMATTED_DATE FROM(site_news_articles)WHERE site_news_articles.news_category_id= 2, site_news_articles.is_approved= '是' AND site_news_articles.status_id= 1个ORDER BY site_news_articles.date_publishedDESC LIMIT 10

文件名:/home/xtremer/public_html/models/sitemodel.php

行号:140

swa*_*ins 6

您正在尝试 mysql查询中执行PHP .您需要使用MySQL DATE_FORMAT功能.看看这里:

http://davidwalsh.name/format-date-mysql-date_format

$this->db->select('site_news_articles.article_title, site_news_articles.is_sticky');
$this->db->select("DATE_FORMAT(site_news_articles.date_published, '%M %e, %Y') as formatted_date", FALSE);
Run Code Online (Sandbox Code Playgroud)

$this->db->select()方法用于"生成"一个SQL查询 - 因此尝试在date_format那里使用CI 函数,将不会生成将在您的数据库上执行的正确的sql查询.

您可以使用查询返回原始日期,然后使用CI格式化日期,或者您需要使用MySQL DATE_FORMAT函数返回带有mysql的格式化日期.


min*_*ost 6

看起来你有语法错误.

$this->db->select("site_news_articles.article_title, site_news_articles.is_sticky, DATE_FORMAT(site_news_articles.date_published, '%M %D, %Y')", FALSE);
Run Code Online (Sandbox Code Playgroud)

每当您在CI中构建查询时,都应该使用双引号括起来,这样您就可以在查询中使用单引号而不必转义它们.