Php 似乎每次使用同一脚本处理日期时,我都需要重复date\u default\u timezone\u set()

Php 似乎每次使用同一脚本处理日期时,我都需要重复date\u default\u timezone\u set(),php,time,timezone,Php,Time,Timezone,所以,要么是我不明白的东西,要么是某个地方坏了 据我所知,当我设置date\u default\u timezone\u set时,它应该适用于整个当前脚本。但是今天早上使用它时,似乎什么都不起作用,直到我开始在每次调用同一脚本/文件中的date()或strotime()函数之前调用date\u default\u timezone\u set 我并不特别想直接更改php.ini文件,我喜欢将其默认设置为UTC。我只想为正在运行的脚本设置timezome,但我不想在几乎每隔一行上设置对date\

所以,要么是我不明白的东西,要么是某个地方坏了

据我所知,当我设置date\u default\u timezone\u set时,它应该适用于整个当前脚本。但是今天早上使用它时,似乎什么都不起作用,直到我开始在每次调用同一脚本/文件中的date()或strotime()函数之前调用date\u default\u timezone\u set

我并不特别想直接更改php.ini文件,我喜欢将其默认设置为UTC。我只想为正在运行的脚本设置timezome,但我不想在几乎每隔一行上设置对date\u default\u timezone\u的调用

有人能确认这是(或不是)正常行为吗?我该如何解决这个问题

编辑

这里有一个例子,我需要什么,以便有正确的时间

date_default_timezone_set('America/Montreal');
$hour_from =  get_field('hour_from', $v->ID);
date_default_timezone_set('America/Montreal');
$hour_to =  get_field('hour_to', $v->ID);
date_default_timezone_set('America/Montreal');
$hour_from_norm = strtotime($hour_from);
date_default_timezone_set('America/Montreal');
$hour_to_norm = strtotime($hour_to);

所以,我使用了一个来自Wordpress某处的文件,没想到它会将时区重置为UTC。但确实如此


在@joren确认我只需要设置一次就可以一行一行地搜索,这让我找到了探索的正确方向。谢谢大家!

您可以在头文件中设置它,该头文件将包含在每个其他文件中。这样,您只需调用一次(可以这么说),并且在您正在使用的脚本之外。@Bono我刚刚编辑了问题,因此有一个示例,我实际上需要对每个文件多次调用。您只需设置一次。你确定你的
get_field()
方法没有弄乱时区吗?@joren我是。不过,在这一点上,我正在一行一行地重试,以确保一切正常。@joren我找到了罪犯。我用wordpress中的一个文件连接到一个站点的数据库,结果发现wordpress的默认时区很混乱。