PHP日期时间戳
我想传递一些date to timestamp
,日期formart是%day %month %time
。像25 nov 07:44
一样,我尝试了下面的一些方法,但是这两个日期是不同的。需要帮助,谢谢。
<?php
$date = '25 nov 07:44';
$time = explode(" ",$date);
$minute = explode(":",$time[2]);
$timestamp = mktime(''.$minute[0].' '.$minute[1].' 00 '.$time[1].' '.$time[0].' 2011')."<br />";// mktime(%hour, %minute, %second, %month, %day, %year);
echo $timestamp; //1322202671
echo date("Y-m-j H:i:s", $timestamp); //2011-11-25 07:31:11
?>
在最新版本的php(5.3+)中,您可以使用DateTime::createFromFormat()
。
尝试像
$format = 'd M H:i';
$date = DateTime::createFromFormat($format, $timestamp);
echo $date->format('Y-m-j H:i:s');
就个人而言,我觉得这个类为基础的方法干净了一点。
PHP文件:
新的方式是更多的easiler呼吁使用,谢谢。 –
的几个问题:
- 你喂养
mktime
一个字符串,而不是一个逗号分隔的列表 -
$time[1]
是一个字符串和mktime
需要数月
您可能想试试strtotime
或者添加一个翻译表以从您的月份字符串开始到一个数字。
那么对我来说什么是正确的'strtotime' formart? '“25-11-2011 07:44”'?所以我应该为'nov'创建一个str_replace到'11'?谢谢。 –
@fish man查看手册了解['strtotime'](http://php.net/manual/en/function.strtotime.php)的信息 – Anonymous
感谢'strtotime','+ 1',但是'DateTime: :createFromFormat($ format,$ timestamp);''对我来说是一种新的方式,一个php初学者,也不太清楚'php5.3 +中的新方法' –
你试过['的strtotime()'](http://php.net/manual/en/function.strtotime.php )? –