如何将VARCHAR转换为日期格式?

时间:2013-11-28 18:46:33

标签: php mysql function datetime time

有一个表格列,其日期格式为varchar0000-00-00 00:00:00

现在我想将日期显示为字符串。目前有日期,甚至是时间。我不知道如何解决这个问题。

我已尝试使用strtotime()进行转换:

$doa = $data['date']
...
$time = strtotime( $doa );
$date_format = date( 'd.m.y', $time );

显示错误日期的内容01.01.70

提前致谢。

更新:

...以下是它将如何存储在db:

$timezone = 'Europe/Berlin';
date_default_timezone_set($timezone);
$timestamp = time();
$db_date = date("d.m.Y - H:i:ss", $timestamp);

1 个答案:

答案 0 :(得分:0)

当您将日期保存到数据库时,您将其保存为“varchar”,因此它是一个字符串。很可能在将代码插入数据库之前,您的格式是这样创建的:

$date_format = date('Y-m-d H-i-s', $time);

这会将日期转换为您的“0000-00-00 00:00:00”格式。我不知道你的格式有“月”和“天”,所以你可以在上面的date()参数中切换“m-d”对。

然后你从数据库中提取数据,实际上你有正确的代码。您以“0000-00-00 00:00:00”格式提取数据,然后将其转换为Unix时间(strtotime),然后使用date()函数对其进行格式化。你只需要记住Unix时间从1970年1月1日开始。这就是为什么你在将零作为日期字符串应用时从代码中得到“01.01.70”。

对所有这些的简短结论:如果您的数据库中存储了任何实际日期(并非全部为零),那么一切都应该非常好。

老实说,PHP Date documentation有关于日期格式的所有明确细节,您可以轻松抓住这个想法。

当然我可能会弄错,你有更多的细节,我还不能发表评论,这里是新手。