我正在使用strftime来显示未来的日期.
但在使用时
strftime('%a., %d. %B %Y',time()+60*60*24*4)
Run Code Online (Sandbox Code Playgroud)
我将于2013年4月1日,而不是苏,2013年3月31日,今天使用它.
(Unix时间戳是1364423120)
strftime('%a., %d. %B %Y',time()+60*60*24*3)
Run Code Online (Sandbox Code Playgroud)
显示正确的Sa.,2013年3月30日
三月的最后一天有什么问题?
时间戳代表当地时间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";
Run Code Online (Sandbox Code Playgroud)
给
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2165 次 |
| 最近记录: |