2012-08-11 69 views
0

可能重复:
Formating an SQL timestamp with PHP我怎样才能把sql当前时间戳记和输出为php日期()?

我在SQL表中的列具有默认当前时间戳值。我正在尝试使用date()以更易读的格式输出它。

然而,不管我用哪种格式,我总是得到相同的日期:1970-01-01 00:33:32

下面是从数据库的当前时间戳的例子值:2012-08-09 06:37:58

下面是我使用的代码尝试将其“转换”为可读格式:

$value['current_date']// is the var from the database.(containing 2012-08-09 06:37:58) 
$somevar = date('Y-m-d H:i:s', $value['current_date']); 

在此先感谢。

+0

感谢所有的人谁帮您现在可以使用任何日期格式代替'Y-m-d H:i:s'。 – 2012-08-11 02:59:54

回答

2

你的问题是你在第二个参数中使用了错误的值。 date() function需要UNIX风格的时间戳作为第二个参数,而不是日期的字符串表示。使用strtotime() function纠正这一点:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date'])); 

正如别人指出的,但是,为什么你懒得做格式化?你想要的格式风格已经在数据库中。它应该很容易:

echo $value['current_date']; 
+0

Jonah感谢您的帮助,TIMESTEMP - 当前timestemp作为默认不使用UNIX风格? – 2012-08-11 02:52:03

+0

'TIMESTAMP'是一个MySQL类型;它与PHP中存在的类型(基本上)没有关系。 'strtotime'函数会将TIMESTAMP值(本质上是一个字符串)转换为UNIX时间戳(整数)等价物。 – 2012-08-11 02:53:27

+0

jonah你的想法似乎工作 – 2012-08-11 02:56:53

0

首先:为什么格式化时间戳,如果它已经存在所需的格式?

关于实际的问题:

http://de2.php.net/manual/en/function.date.php

date()只接受UNIX时间戳(秒自1970-1-1 00:00:00 UTC)或没有时间戳的。如果你想要一个像你有你需要与date_create()mktime,或strtotime

+0

Leon这只是我考虑过的所有尝试之后使用安全措施的测试。 – 2012-08-11 02:56:06

0

的问题,您有是因为date()的第二个参数应该是一个时间戳首先创建一个Unix时间戳和时间戳工作,并既然你传递的是包含2012-08-09 06:37:58的原始字符串,php不知道该怎么做。

如下修改代码,它应该工作:

$somevar = date('Y-m-d H:i:s', strtotime($value['current_date'])); 

如你所愿

相关问题