为了账号安全,请及时绑定邮箱和手机立即绑定

在php中显示月份数组中特定格式的日期

在php中显示月份数组中特定格式的日期

PHP
HUH函数 2023-09-22 14:46:28
我有一个如下所示的 php 代码,其中有一个法国月份数组。<?php$months = array(    1 => "janvier",    2 => "février",    3 => "mars",    4 => "avril",    5 => "mai",    6 => "juin",    7 => "juillet",    8 => "août",    9 => "septembre",    10 => "octobre",    11 => "novembre",    12 => "décembre",);?>问题陈述:我想要实现的是我想以以下格式显示日期:08 août 2020对于该月的第一天,将 er 附加到数字后:e.g. 1er août 2020这是我尝试过的。虽然它可以工作,Line A prints 08 août 2020但我想知道它是否在所有情况下都有效。这里的所有情况是指该月的所有天。我已经对 Z 行的值进行了硬编码,但它会改变。<?php$months = array(    1 => "janvier",    2 => "février",    3 => "mars",    4 => "avril",    5 => "mai",    6 => "juin",    7 => "juillet",    8 => "août",    9 => "septembre",    10 => "octobre",    11 => "novembre",    12 => "décembre",);$this_date="2020-08-08";   // Line Z $this_time = strtotime($this_date);$day = date('d', $this_time);$month = date('n', $this_time);$month_fr = $months[$month];$suffix = $day == 1 ? 'er' : '';$formatted_new_fr = strftime("%d$suffix " . $month_fr . " %Y", $this_time);echo $formatted_new_fr;  // Line A?>
查看完整描述

1 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

PHP 已经帮您解决了:)


setlocale(LC_TIME, 'fr_FR');


$dateString = '2020-08-08';

$timestamp = strtotime($dateString);

$formattedDate = strftime('%d %B %Y', $timestamp);

//setlocale(LC_ALL, Locale::getDefault()); // restore (if neccessary)


echo utf8_encode($formattedDate);

输出

08 août 2020


为了得到这1er一天,你可以做你已经做过的事情。只需拆分 strftime(或其结果)即可。

参考

  • 时间

  • 设置语言环境


另一个解决方案(尽管会按顺序显示所有日期)

$locale = 'fr_FR';

$dateString = '2020-08-01';

$date = new DateTimeImmutable($dateString);

$dateFormatter = new IntlDateFormatter(

    $locale,

    IntlDateFormatter::FULL,

    NULL

);


$numberFormatter = new NumberFormatter($locale, NumberFormatter::ORDINAL);

$ordinalDay = $numberFormatter->format($date->format('d'));

$dateFormatter->setPattern('LLLL Y');


echo $ordinalDay . ' ' . $dateFormatter->format($date->getTimestamp());

输出

1er août 2020

参考

  • DateFormatter 的模式

  • 数字格式化程序


查看完整回答
反对 回复 2023-09-22
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信