gpt4 book ai didi

php - date() 和 gmdate() 的不同结果

转载 作者:可可西里 更新时间:2023-11-01 13:10:14 25 4
gpt4 key购买 nike

我发现了一些我无法真正解释的东西,也许这里有人可以给我一个提示。

我有以下测试代码,它使用 date()gmdate():

<?php

function print_date($timestamp, $year) {
// Add timezone offset for germany
$timestamp += 3600;
print "in $year\n";
print "date: " . date('d.m.Y H:i:s', $timestamp) . "\n";
print "gmdate: " . gmdate('d.m.Y H:i:s', $timestamp) . "\n";
print "\n";
}

$end_2013 = 1364684400; // 31.03.2013
$end_2014 = 1396216800; // 31.03.2014
print_date($end_2013, '2013');
print_date($end_2014, '2014');

print "Default timezone: " . date_default_timezone_get() . "\n";

结果让我吃惊:

in 2013
date: 31.03.2013 01:00:00
gmdate: 31.03.2013 00:00:00

in 2014
date: 31.03.2014 01:00:00
gmdate: 30.03.2014 23:00:00

Default timezone: Europe/Berlin

2014年的差异从何而来?我的第一个想法是夏令时,但为什么在 2013 年没有效果?为什么2014年时差2小时,而2013年时差只有1小时?

最佳答案

柏林的夏令时开始于

2013 Sunday, 31 March, 02:00 
2014 Sunday, 30 March, 02:00

您为每个日期指定的时间值为该日期的 00:00,因此对于 2013 年 3 月 31 日星期日,它是之前凌晨 2 点,因此没有夏令时; 2014 年是 3 月 30 日凌晨 2 点之后

关于php - date() 和 gmdate() 的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22219770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com