2017-10-11 67 views
0

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

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

我没把它从下面的代码转换

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'); 
+0

尝试[这](https://开头计算器.com/questions/1670797/convert-date-to-unixtime-php) – Sand

+0

它如何与时区一起工作? – user3151197

+0

你可以请尝试这个https://stackoverflow.com/questions/8668108/how-to-get-unix-timestamp-in-php-based-on-timezone – Abhijit

回答

0
function DateTimeToUnixFromTimezone($dateNTime,$timezone){ 
    $date = new DateTime($dateNTime, new DateTimeZone($timezone)); 
    return $date->getTimestamp() + $date->getOffset(); 
} 
+0

值得注意的是,如果将偏移量添加到时间戳,它不再是unix时间。这样做几乎总是一个错误。我想不出任何人会想要这样的理由。 – Evert

相关问题