我有一个问题,我 99% 确信它与从昨天开始的夏令时有关。
以下脚本:
<?php
$i=1383451200;
echo $i, " ", date('Y-m-d I', @$i);
echo "\n";
$i = $i + 86400;
echo $i, " ", date('Y-m-d I', @$i);
echo "\n";
?>
(其中 86400 是一天中的秒数)
给出以下输出
1383451200 2013-11-03 1 1383537600 2013-11-03 0
2 个时间戳,以一天中的秒数分隔,输入 date(),给出相同的日期 2013-11-03
因为它是 2013 年 11 月 3 日,我知道我们切换到夏令时,并且 I 格式说明符指示一个时间戳在 DST 中,一个不是我认为可以肯定地说我的系统配置错误。
问题是,如何解决?我已经做了:
pecl 安装时区数据库
并将以下内容添加到 php.ini
扩展=/usr/lib/php5/20100525/timezonedb.so
在我的系统上。
我的系统是 Macbook Pro 上的 Ubuntu 12.10,我使用的是 php 5
任何建议如何解决这个问题?
这就是我想要做的。我想打印一个月中每一天的日期。
$startTime = strtotime($start);
$endTime = strtotime($end);
其中 $start 和 $end 是 YYYY-MM-DD 形式的字符串(用户可以指定它们)
一个月中的每一天计算如下:
for ($i = $startTime; $i <= $endTime; $i = $i + 86400) {
$thisDate = date('Y-m-d', $i);
}
我希望它打印出从可能用户指定范围的开始到结束的月份中每一天的日期。
标记