Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP转换日期格式_Php_Joomla - Fatal编程技术网

用PHP转换日期格式

用PHP转换日期格式,php,joomla,Php,Joomla,我有一个需要使用PHP更改日期格式的情况 该站点使用Joomla和k2。模板使用以下内容获取文章发布日期: $itemCreated = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4')); echo $itemCreated; 这将以以下日期格式输出日期:A d B Y 我需要将其更改为日期格式:ymd (注意:对于那些熟悉Joomla&K2的人:我不想使用语言重写。这个特定任务只需要使用PHP即可完成)。这是您可

我有一个需要使用PHP更改日期格式的情况

该站点使用Joomla和k2。模板使用以下内容获取文章发布日期:

$itemCreated = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
echo $itemCreated;
这将以以下日期格式输出日期:
A d B Y

我需要将其更改为日期格式:
ymd


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

这是您可以在
PHP

假设您正在
UNIX时间戳

$time = date('Y-m-d',strtotime($your_unix_timestamp));

我曾经在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->created作为参数传递给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)
不同的日期格式。

这是Joomla

代码

JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
实际将项目创建日期提取为以下格式:日期\u格式\u 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, 'Y m d');

我真的不确定如何将它与我需要转换的现有代码结合起来(在我的原始帖子中)
$item->created
这就是提供时间字符串的原因吗?+然后将
$item->created
存储在一个变量中,并使用该变量代替上面代码段中的
$your\u unix\u timestamp
。工作得很好!非常感谢。
JHTML::_('date', $item->created, 'Y m d');