php 有没有一个快速的方法来转换日期为西班牙语?

3zwtqj6y  于 2023-02-21  发布在  PHP
关注(0)|答案(3)|浏览(147)

用这个:

date( 'd F Y', strtotime( $row["datestart"] ) )

我得到这个:

08 July 2016

但我需要得到这个:

08 Julio 2016

胡里奥在西班牙语里是七月。
我在php页面的顶部添加了以下内容:

setlocale(LC_TIME, 'es_ES');

但它不起作用。
那我能怎么办?

jyztefdp

jyztefdp1#

这对我很有效:

setlocale(LC_TIME, 'es_ES', 'Spanish_Spain', 'Spanish'); 
$date = str_replace("/","-","08/07/2016");
echo strftime('%d %B %Y',strtotime($date)); // 08 julio 2016

setlocale是这里的关键成分。

  • 更新 *:PHP 8.x
$format = new IntlDateFormatter('es_ES', IntlDateFormatter::SHORT, IntlDateFormatter::NONE, NULL, NULL, 'dd MMMM y');
echo $format->format(new DateTime('now', new DateTimeZone('UTC')));

使用formatDateTime输出到您在IntlDateFormatter中指定的语言环境(DateTimeZone是可选的)。

txu3uszq

txu3uszq2#

您可以使用的另一个变体:
phplink)安装intl扩展。在php.ini文件中启用它,然后您将能够检查它是否与以下示例一起工作:

$f = new IntlDateFormatter('es_ES', null, null, null, null, null, 'dd MMMM y');
print($f->format(new DateTime('2016-07-08'));

预期结果如下:08 julio 2016

tnkciper

tnkciper3#

您可以创建一个关联数组。将键设置为英语的月份,将值设置为西班牙文的相应月份。
它看起来像这样...

$months = array(
  'january' => 'enero',
  'february' => 'febrero',
  'march' => 'marzo',
  'april' => 'abril',
  'may' => 'mayo',
  'june' => 'junio',
  'july' -> 'julio',
  'august' => 'agosto',
  'september' => 'septiembre',
  'october' => 'octubre',
  'november' => 'noviembre',
  'december' => 'diciembre'
);

然后你可以参考像这样的月份...

$enMonth = "july"; //This is the month in English that you will match to the corresponding month in Spanish.

$esMonth = $months[$enMonth]; //You are returning the value (which is Spanish) of the key (which is English), giving you the month in Spanish.

您可能还可以使用Google Translate的API,但对于可以用简单数组完成的事情来说,这似乎太多了。
如果您对翻译其他单词或更大的单词数组感兴趣,可以使用Google Translate's API

相关问题