用时区格式化DateTime

时间:2018-12-16 06:51:06

标签: php datetime

在使时区在客户端项目上表现出色时,我遇到了一些麻烦。

我敢肯定,我太精疲力尽了,根本看不到脸上的表情...

我有这行...

 value _2 is not a member of scala.collection.immutable.Map[Int,((Int,  Double),(Int, Double))]
   user._2._1

我正试图从此行代码中获取日期和时间以显示在网站上(或用于其他日期计算……例如该日期/时间是否过去,等等),但是我希望它使用我指定的时区...

我可以这样做

new DateTime(date('m/d/Y h:i a',$expDate), $timeZone);

但是它使用UTC作为时区...这就是为什么我首先构建DateTime()位的原因...


$ timeZone的默认值是EST(“ America / New_York”),因为这是我的客户所在的时区。

但是他们在美国和加拿大都有针对客户的列表,因此他们可以选择设置时区以匹配其客户的位置。

当我确定到期日期(和时间)是否已经过去时,我只是不知道如何使其真正使用该时区...

我需要将其默认设置为客户所在时区的到期日期的午夜。

任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用此格式进行时区格式化:

$timezone = new DateTimeZone('America/New_York');
$today = new DateTime("now", $timezone);
$today_formatted = $today->format('M j, Y h:i a T');

获取客户时区必须由JS完成,这是一个肯定可以帮助您的答案:

How to detect user's timezone