使用PHP转换日期格式

时间:2015-06-22 08:15:35

标签: php joomla

我遇到需要使用PHP更改日期格式的情况。

该网站使用Joomla& K2。该模板使用以下内容获取文章发布日期:

$itemCreated = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
echo $itemCreated;

这将以下列日期格式输出日期:A d B Y

我需要将其更改为以日期格式显示:Y m d

(注意:对于那些熟悉Joomla& K2的人:我不想使用语言覆盖。这个特殊任务只需要使用PHP完成。)

3 个答案:

答案 0 :(得分:1)

您可以在time

中执行此操作

假设您正在UNIX Timestamp

中找到$time = date('Y-m-d',strtotime($your_unix_timestamp));
{{1}}

答案 1 :(得分:0)

我曾经在Joomla中遇到过与日期格式相同的问题。这是我有时使用的一个小代码片段:

        $theDate = new DateTime($item->created);
        $itemCreated= strftime("%Y %m %d", mktime(0, 0, 0, $theDate->format('n'), $theDate->format('j'), $theDate->format('Y')));

我做的Joomla模块开发的类的更完整的实现部分。您还可以使用这两个函数将$ item->作为参数创建到formatDate()函数。

   function buildDateObj($date) {
    try {
        $dateObj = new DateTime($date);
    } catch (Exception $e) {
        //  return $e->getMessage();
        return false;
    }
    return $dateObj;
}

function formatDate($date) {
    $formattedDate = '';
    if ($date !== "") {
        $currDate = buildDateObj($date);
        if ($currDate !== false) {
            $lang = JFactory::getLanguage();
              $LangTag = $lang->getTag(); 
              setlocale(LC_TIME,  $LangTag);

            $formattedDate = strftime("%Y %m %d", mktime(0, 0, 0, $currDate->format('n'), $currDate->format('j'), $currDate->format('Y')));
            setlocale(LC_TIME, 0);
        }
    }
    return $formattedDate;
}

$itemCreated = formatDate($item->created)

不同的strftime日期格式。

答案 2 :(得分:0)

这是Joomla。

代码

JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));

实际上将项目创建日期提取为以下格式: DATE_FORMAT_LC4

以下格式为默认格式

DATE_FORMAT_LC="l, d F Y"
DATE_FORMAT_LC1="l, d F Y"
DATE_FORMAT_LC2="l, d F Y H:i"
DATE_FORMAT_LC3="d F Y"
DATE_FORMAT_LC4="Y-m-d"
DATE_FORMAT_JS1="y-m-d"

joomla中的每个已安装语言都会将其更改为本地格式,因此在多语言网站中,用户可以看到其本地格式。

如果你想查看"固定"无论用户本地是什么格式,您都可以更改: 这样:

JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));

到此:

JHTML::_('date', $item->created, 'Y m d');