使用正确的时间约会


Date with the correct time

我用日期来获取日期,但是...

它比我的电脑时间少了 3 个小时。

date('g:i A')

我相信正在给一个时间 EST,因为我是 PST,而且休息了 3 个小时。

有没有办法让它自动输入正确的时区?

要简单地从服务器获取 3 小时的时间,您可以说:

date ('g:i A', time () + 60*60*3);

date ('g:i A', time () - 60*60*3);

据我所知,没有一种"完美"的方法来获取用户所在的时区,但在过去,我使用javascript来找出用户当前的计算机时间,并将其与服务器的时间进行比较。Javascript是我所知道的唯一获取与某人当前时间或时区相关的信息的方法。

您可以在配置文件 ( php.ini ) 中或在运行时配置时区。PHP 是一个服务器端应用程序,因此它不能"自动"从客户端获取时区。

文档

如果您正在处理数据,则应使用 UTC 日期/时间并适当偏移时间。

健壮的解决方案是将DateTimeDateTimeZone一起使用,而不是date

<?php
$date = new 'DateTime(null, new 'DateTimezone('PST'));
// or even better: 
$date = new 'DateTime(null, new 'DateTimezone('America/Los_Angeles'));
$formatted = $date->format('g:i A');

请注意,仅使用通用时区(如"PST")可能仍然不明确。该时区中的某些位置可能遵守 DST,有些可能没有。因此,唯一可靠的办法是尽可能具体地指定位置。