【问题标题】:php Convert datetime to unixtime with timezonephp 将日期时间转换为带时区的 unixtime
【发布时间】:2017-10-11 09:47:01
【问题描述】:

我有亚洲/卡拉奇的日期时间 2017-10-11 09:40:42 我想将其转换为 unix 时间戳。

注意:我有多个不同时区的记录,例如:澳大利亚/悉尼

我无法从以下代码转换它

function unixTimefromTime($thetime='now',$timezone){
    if(is_numeric($thetime)){
        $dt = new \DateTime('@'.$thetime);
        $dt->setTimeZone(new \DateTimeZone($timezone));
        return $dt->getTimestamp();
    } else {
        $date = new \DateTime($thetime, new \DateTimeZone($timezone));
        return $date->getTimestamp();
    }
}

unixTimefromTime('2017-10-11 09:40:42','Asia/Karachi');

【问题讨论】:

标签: php date


【解决方案1】:
function DateTimeToUnixFromTimezone($dateNTime,$timezone){
    $date = new DateTime($dateNTime, new DateTimeZone($timezone));
    return $date->getTimestamp() + $date->getOffset();
}

【讨论】:

  • 值得注意的是,如果将偏移量添加到时间戳,则不再是 unix 时间。这样做几乎总是一个错误。我想不出任何人想要这个的原因。
猜你喜欢
  • 1970-01-01
  • 2010-12-12
  • 2022-12-17
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
相关资源
最近更新 更多