如何将日期(" j / n / y")转换为纪元

时间:2015-01-23 15:43:39

标签: php date unix-timestamp

我有一些使用date("j/n/y")格式的数据,即今天的日期为23/1/15

我试过了

echo strtotime($today);

但这并没有给我我想要的时间戳。我如何将date("j/n/y")格式的日期转换为纪元?

3 个答案:

答案 0 :(得分:5)

使用DateTime::createFromFormat()阅读日期格式,然后使用DateTime::getTimestamp()将其格式化为时间戳。

$date  = DateTime::createFromFormat('j/n/y', '23/1/15');
$epoch = $date->getTimestamp();

答案 1 :(得分:1)

我认为您正在寻找PHP中的mktime函数。它有点像这样:

$timestamp = mktime(0,0,0,0,0,0);

依次为:小时,分钟,秒,月,日,年。所以,在你的情况下:

$today = mktime(0, 0, 0, 1, 23, 2015); 
// Would return the timestamp for Jan. 23rd, 2015 at 12:00:00 am (I think)

如果您正在寻找动态现在时间戳,您可以在mktime的每个参数中使用date()。例如:

$rightnow = mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y"));
// Would return the timestamp for Jan. 23rd, 2015 at 10:57:25 am.

但是,正如John Conde所说,它要求你在使用它之前拆分日期,所以它可能效率不高。

希望有所帮助!

答案 2 :(得分:0)

只要采用另一种方法,这个方法将有85年以上的好处。

$date = date('j/n/y', time());

list($day, $month, $year) = explode("/", $date);

$date = "20" . $year . "-" . $month . "-" . $day;

echo date('m/d/Y', strtotime($date));