如何从日期时间戳的时间和日期在PHP

问题描述:

我有1串像8/29/2011 11:16:12 AM我想在像$ DAT = 2011年8月29日变量保存和$ TME =上午十一时16分12秒如何从日期时间戳的时间和日期在PHP

如何会有可能吗?你能举个例子吗?

E.g.

<?php 
$s = '8/29/2011 11:16:12 AM'; 
$dt = new DateTime($s); 

$date = $dt->format('m/d/Y'); 
$time = $dt->format('H:i:s'); 

echo $date, ' | ', $time; 

看到http://docs.php.net/class.datetime


编辑:为了保持AM/PM格式使用

$time = $dt->format('h:i:s A'); 

这应该做的伎俩:

$mystring_datetime = ....; 
$dt = DateTime::createFromFormat('m/d/Y H:i:s A', $mystring_datetime); 
$d = $dt->format('m/d/Y'); 
$t = $dt->format('H:i:s A'); 

你也可以做像这样的东西,但它“不是首选方式:

$mystring_datetime = ....; 
list($date, $time) = explode(' ', $mystring_datetime, 2); 

现在,$date$time有适当的值...

+0

thnx回答它的工作很好..... – user1153176 2012-03-29 10:34:48

如果您的PHP版本已经够新,退房date_parse(),并返回该数组。然后,您可以使用相关条目格式化日期或时间部分。

这可能不是最干净的方式,但您可以使用爆炸(注意,这里没有任何验证)。这将比正确的日期操作更快。

$str = '8/29/2011 11:16:12 AM'; 
$dates = explode(' ', $str); 
$dat = $dates[0]; 
$time = $dates[1]; 

是的,这是可能的,一个很好的例子可以在这里找到http://php.net/manual/en/function.date.php

祝你好运,

<?php 
    $date = strtotime('8/29/2011 11:16:12 AM'); 
    $dat = date('m/d/y', $date); 
    $tme = date('H:m:s A',$date); 

?> 

有关日期()函数的详细信息,PLZ参观http://php.net/manual/en/function.date.php

只要日期在1/1/1970之后,你可以使用strtotime函数 -

<?php 

$s = strtotime('8/29/2011 11:16:12 AM'); 

$date = date('m/d/Y', $s); 
$time = date('H:i:s A', $s); 

?> 

http://php.net/manual/en/function.strtotime.php

的strtotime创建一个从你传递给它的字符串一个UNIX时间戳。