0

我有一个定义为“今天 - 30 天”的 $start_date。尝试将其转换为德语表示法时,日期打印为 01.Januar 1970(而不是 10. March 2012)我理解这意味着 Unix 将结果解释为“0”,但我不知道我做错了什么。

$start_date = date("Y-m-d", strtotime("-30 days"));   
setlocale(LC_TIME, 'de_DE');
$start_date_DE = strftime('%d. %B %Y',$start_date);
4

1 回答 1

0

问题是strftime需要一个时间戳作为第二个参数,但是您将一个字符串传递给它(格式为“Ymd”)。所以它返回了 UNIX 纪元(1/1/1970)。

试试这个:

$start_date = strtotime("-30 days");   
setlocale(LC_TIME, 'de_DE');
$start_date_DE = strftime('%d. %B %Y',$start_date);

http://codepad.org/pK9J07Wm

于 2012-04-10T15:47:48.853 回答