doucai9270 2015-12-27 10:35
浏览 63
已采纳

使用固定结果将字符串日期转换为时间戳和时间戳到目前为止[复制]

This question already has an answer here:

I have an string date like this: 2015/12/20 13:58:59

I try to convert timestamp:

$idate = $user->multiexplode(array("/"," ",":"),strip_tags("2015/12/20 13:58:59"));

//mktime( $hour , $minute , $second , $month , $day , $year , $is_dst );
$timestamp = mktime($idate[3],$idate[4],$idate[5],$idate[1],$idate[2],$idate[0]);

And now I try to convert real date:

echo 'new date: '.jdate('Y/n/j H:i:s',$timestamp);

Ok...it works but there is a problem!

according of time server,I get variable time.

for examle for location +1 GMT: 2015/12/20 14:58:59

for -1 GMT: 2015/12/20 11:58:59

I want for all server print 2015/12/20 13:58:59 again

</div>
  • 写回答

2条回答 默认 最新

  • duanquan4451 2015-12-27 11:03
    关注

    You can use DateTime class and it's methods to convert the date and time to unix timestamp. And use strftime() to convert the unix timestamp back to your desired format, like this:

    $datetime = "2015/12/20 13:58:59";
    
    // covert timestamp
    $unixdatetime = DateTime::createFromFormat('Y/m/d H:i:s', $datetime)->getTimestamp();
    echo $unixdatetime . "<br />";  // 1450616339
    
    // now format the unix timestamp
    $formatted_datetime = strftime("%Y/%m/%d, %H:%M:%S",$unixdatetime);
    echo $formatted_datetime;  // 2015/12/20, 13:58:59
    

    Output:

    1450616339
    2015/12/20, 13:58:59
    

    Here are the references:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?