2011-11-25 131 views
0

可能重复:
How to convert date to timestamp in PHP?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 
?> 
+3

你试过['的strtotime()'](http://php.net/manual/en/function.strtotime.php )? –

回答

1

在最新版本的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文件

DateTime::createFromFormat

date() for info on format strings

+0

新的方式是更多的easiler呼吁使用,谢谢。 –

5

的几个问题:

  • 你喂养mktime一个字符串,而不是一个逗号分隔的列表
  • $time[1]是一个字符串和mktime需要数月

您可能想试试strtotime或者添加一个翻译表以从您的月份字符串开始到一个数字。

+0

那么对我来说什么是正确的'strtotime' formart? '“25-11-2011 07:44”'?所以我应该为'nov'创建一个str_replace到'11'?谢谢。 –

+1

@fish man查看手册了解['strtotime'](http://php.net/manual/en/function.strtotime.php)的信息 – Anonymous

+0

感谢'strtotime','+ 1',但是'DateTime: :createFromFormat($ format,$ timestamp);''对我来说是一种新的方式,一个php初学者,也不太清楚'php5.3 +中的新方法' –