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条)

相关推荐 更多相似问题