php - strftime 得到错误的日期

标签 php date strftime

我正在使用 strftime 来显示 future 的日期。

但是在使用的时候

strftime('%a., %d. %B %Y',time()+60*60*24*4)

我今天使用它时得到的是 Mo., 0​​1. April 2013 而不是 Su., 31. March 2013。

(Unix 时间戳为 1364423120)

strftime('%a., %d. %B %Y',time()+60*60*24*3)

显示正确的 Sa., 30. March 2013

三月的最后一天有什么问题?

最佳答案

时间戳表示本地时间 23:25:20。由于夏令时于 3 月 31 日生效,添加 96 小时将为本地时间 00:25:20,因此日期比预期晚一天。使用 gmstrftime 而不是 strftime 可以避免这个问题。

<?php

$timestamp = 1364423120;

echo strftime('%a., %d. %B %Y (%c %Z)', $timestamp)."\n";
echo strftime('%a., %d. %B %Y (%c %Z)', $timestamp +60*60*24*4)."\n";
echo gmstrftime('%a., %d. %B %Y (%c %Z)', $timestamp)."\n";
echo gmstrftime('%a., %d. %B %Y (%c %Z)', $timestamp +60*60*24*4)."\n";

给予

Wed., 27. March 2013 (Wed Mar 27 23:25:20 2013 CET)
Mon., 01. April 2013 (Mon Apr  1 00:25:20 2013 CEST)
Wed., 27. March 2013 (Wed Mar 27 22:25:20 2013 GMT)
Sun., 31. March 2013 (Sun Mar 31 22:25:20 2013 GMT)

关于php - strftime 得到错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15670763/

相关文章:

javascript - 使用目标 php 时防止 anchor 标记跳转到页面顶部

php - Codeigniter + Chrome 错误 (ERR_RESPONSE_HEADERS_TOO_BIG)。怎么解决?

perl - 通过 perl 脚本对 strftime 使用与区域设置不同的语言

javascript - 查看特定日期是星期几

python - ValueError at/无效格式字符串

python - 使用python将字符串转换为时间

php - 分离 Drupal 模块逻辑和 UI

php - 选择开始日期内的行

PHP Date - 时差格式化

javascript - 无法允许日期采用 dd/mmm/yyyy