【问题标题】:Convert to capital letter the day and month names using PHP strftime()使用 PHP strftime() 将日期和月份名称转换为大写字母
【发布时间】:2015-02-11 13:26:12
【问题描述】:

当我想在默认timezone中显示时间是没有问题的,例如:

Friday, 12 de December del 2014

但是当我想以其他语言(其他时区)显示它时存在问题,例如Spanish,它的输出如下:

viernes, 12 de diciembre del 2014

我使用的时间格式是:"%A, %d de %B del %Y"

我想这样显示:Viernes, 12 de Diciembre del 2014


我尝试使用 ucfirst()ucwords() 函数来解决它,但我认为它们不是很好的解决方案,因为它显示如下:Viernes, 12 De Diciembre Del 2014

【问题讨论】:

  • 如果没有人有更好的解决方案,您可以随时使用str_replace()
  • @JonathanM 首先我声明了这个setlocale(LC_TIME, 'Spanish'); 然后我用utf8_encode(strftime("%A, %d de %B del %Y")) 调用它
  • 仅供参考,西班牙语中的月份和星期几不是大写的。这就是它被这样输出的原因。
  • @JonathanM 在西班牙语中也经常使用大写字母。作为一般规则,每个名称都大写。
  • @CésarNontol,是的,人名大写。您确定要将星期几和月份大写吗?通常不会这样做。但如果您愿意,我相信我们可以找人发布代码示例。

标签: php timezone strftime


【解决方案1】:

好吧,终于在搜索了一个回答我的问题的神奇方法之后,我别无选择,只能使用用户 John Conde 的建议。

这是我使用的方法:

$default_local_date = ucwords(utf8_encode(strftime("%A, %d de %B del %Y")));

$date_connectors_capital = array('De', 'Del');
$date_connectors_lower = array('de', 'del');

$local_date = str_replace($date_connectors_capital, $date_connectors_lower, $default_local_date);

echo $local_date;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 2021-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 2016-08-22
    相关资源
    最近更新 更多