如何翻译此日期格式



在一个模板(Drupal)php.tpl文件中,我有以下内容:

               <?php    
               print date('F j, Y', $comment->created);
               print ' at ' . date('h:ia', $comment->created); 
               ?>

但当网站是外语的时候,它不会打印翻译。如何翻译?使用t()函数?如果是,我该如何重写它以包含它?

感谢您的任何帮助。:)

更新:

Isemi下面的第二个解决方案工作得很好,除了打印Y而不是年份的年份。稍作调整后,代码变为:

$dateF = t(date('F', $comment->created));
$datej = t(date('j', $comment->created));
$dateY = t(date('Y', $comment->created));
print "{$datej} {$dateF} {$dateY}" . t(' at ') . date('H:i', $comment->created);

"at"很容易翻译,因为它变成了一个单独的可翻译字符串。注意"a"前面和"t"后面的空格。

date()函数使用服务器的区域设置。您应该在当前过程中更改它,这可能很尴尬,并且不可能在所有配置中都工作。

您应该检索所需的区域设置字符串,然后:

setlocale(LC_TIME, 'it_IT'); // Depends on the client.
$datel = strftime("%F %j, %Y at %H:%i:%s", $comment->created);

但除了正确的代码(我不太确定%F和%j),我认为你仍然有翻译"at"的问题。

或者,您可以分段获取日期并按部分进行翻译:

$dateF = t(date('F', $comment->created));
$datej = t(date('j', $comment->created));
$dateY = date('Y', $comment->created); // Numeric year not translated.
print "{$dateF} {$datej}, {$dateY} " . t('at')
      . date('h:i', $comment->created);

你也可以使用Intl扩展,看看这个答案。

相关内容

  • 没有找到相关文章

最新更新