【问题标题】:PHP: convert UTC Date into seconds - not works with strtotime()PHP:将 UTC 日期转换为秒 - 不适用于 strtotime()
【发布时间】:2017-12-21 02:43:05
【问题描述】:

我有这个 UTC 日期 2017-07-16 12:00:07.8 UTC(调用$dateconvert),我想将其转换为秒。 我尝试使用strtotime(),但它在 UTC 中返回秒数,又删除了两个小时,我不明白为什么。

我在意大利,这里的日期是 UTC+2,也许 strtotime() 用意大利时区读取 $dateconvert,什么时候将其转换为秒数以消除 2 小时? 可能吗?

$anno_emsc= 2017;
$mese_emsc= 7;
$giorno_emsc= 16;
$ora_emsc= 12;
$minuto_emsc= 0;
$secondo_emsc= 7;


$dataconvert= strtotime($anno_emsc.'-'.$mese_emsc.'-'.$giorno_emsc.' '.$ora_emsc.':'.$minuto_emsc.':'.$secondo_emsc)+0; 

输出

1500199207 // strtotime removed 2 hours

【问题讨论】:

  • 如果您将所有部分放在单独的变量中,为什么不使用gmmktime() 将它们转换为时间戳?
  • @rickdenhaan 与 gmmktime() 作品!如果你写一个答案,我会接受它;)

标签: php date datetime timezone utc


【解决方案1】:

由于您已经知道所有部分,您可以使用gmmktime() 将其转换为时间戳。 mktime() 的“gm”版本知道它正在接收 GMT/UTC 日期并将相应地处理它。

【讨论】:

    【解决方案2】:

    尝试将您的date_default_timezone_set() 设置为正确的时区,看看是否能解决您的问题。有时您的 php 实例会默认使用错误的时区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 2019-12-05
      • 1970-01-01
      • 2017-11-07
      • 1970-01-01
      • 2011-01-06
      • 1970-01-01
      • 2010-10-08
      相关资源
      最近更新 更多