将日期翻译为默认语言或所选语言

时间:2016-06-16 10:51:49

标签: php

我必须显示从我的数据库中选择的日期,日期始终以英语显示,我的网站是bilangue,EN / DE。

我的PHP代码

    setlocale(LC_ALL, "de_DE.utf8");
    ...
    $myDate='2016-06-17'; //example
    echo strftime(date_format(date_create($myDate), "l, j  F Y "))

但这不起作用,我总是在EN Friday, 17 June 2016

中得到它

更新:我可以使用

strftime("%B %e, %G",date_timestamp_get(date_create($myDate))) 

我得到了Juni 17, 2016,但后来我失去了当天的名字,所以我还要使用date_format

2 个答案:

答案 0 :(得分:3)

以下代码给出了预期结果:

setlocale(LC_ALL, "de_DE.utf8");
$myDate='2016-06-17'; //example
echo strftime("%A, %e %B %Y", date_create($myDate)->getTimestamp());

根据文档,strftime参数是格式字符串和时间戳。您提供的第二个参数不是时间戳。

答案 1 :(得分:0)

主要有两个问题:

  • 请勿坚持使用正确的日期数据类型,并将其与太多字符串混合使用。
  • 请勿使用文档说明的功能。

strftime()函数需要将Unix时间戳作为第二个参数,但date_format()返回一个字符串(可以返回带有时间戳的字符串,但它不会因为{ {1}})。您还使用strftime()错误:第一个参数是格式,而不是时间戳。此外,您使用l, j F Y个对象作为代理而没有任何好处。

尝试更简单的方法:

DateTime