使用 PHP 转换日期格式
Converting date format with PHP
我有一种情况需要使用 PHP 更改日期格式。
该站点使用 Joomla 和 k2。该模板使用以下内容获取文章发布日期:
$itemCreated = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
echo $itemCreated;
这将以下列日期格式输出日期:A d B Y
我需要将其更改为以日期格式显示:Y m d
(注意:对于那些熟悉 Joomla 和 K2 的人:我不想使用语言覆盖。这个特定的任务只需要使用 PHP 来完成)。
这是您可以在 PHP
中执行的操作
假设您在 UNIX Timestamp
中收到 time
$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')));
还有一个更完整的 class 实现部分,用于我开发的 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)
不同的 strftime 日期格式。
这是 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 中安装的每种语言都会将其更改为其本地格式,因此在多语言网站中,用户会看到其本地格式。
如果您想查看 "FIXED" 格式,无论用户本地是什么,您可以更改:
这个:
JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
对此:
JHTML::_('date', $item->created, 'Y m d');
我有一种情况需要使用 PHP 更改日期格式。
该站点使用 Joomla 和 k2。该模板使用以下内容获取文章发布日期:
$itemCreated = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
echo $itemCreated;
这将以下列日期格式输出日期:A d B Y
我需要将其更改为以日期格式显示:Y m d
(注意:对于那些熟悉 Joomla 和 K2 的人:我不想使用语言覆盖。这个特定的任务只需要使用 PHP 来完成)。
这是您可以在 PHP
假设您在 UNIX Timestamp
time
$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')));
还有一个更完整的 class 实现部分,用于我开发的 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)
不同的 strftime 日期格式。
这是 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 中安装的每种语言都会将其更改为其本地格式,因此在多语言网站中,用户会看到其本地格式。
如果您想查看 "FIXED" 格式,无论用户本地是什么,您可以更改: 这个:
JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC4'));
对此:
JHTML::_('date', $item->created, 'Y m d');