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

Php 如何将VARCHAR转换为日期格式?,php,mysql,function,datetime,time,Php,Mysql,Function,Datetime,Time,有一个日期格式为varchar和0000-00-00 00:00:00的表列 现在我想将日期显示为字符串。现在有日期甚至时间。我不知道如何解决这个问题 我已尝试使用strotime()进行转换: 显示错误日期的内容01.01.70 提前谢谢 更新: …下面是如何将其存储在数据库中: $timezone = 'Europe/Berlin'; date_default_timezone_set($timezone); $timestamp = time(); $db_date = date("d.m

有一个日期格式为
varchar
0000-00-00 00:00:00
的表列

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

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

显示错误日期的内容
01.01.70

提前谢谢

更新:

…下面是如何将其存储在数据库中:

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

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

$date_format = date('Y-m-d H-i-s', $time);
这会将日期转换为“0000-00-00:00:00”格式。在您的格式中,我不知道“月”和“天”,所以您可以在上面的date()参数中切换“m-d”对

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

所有这些的一个简短结论是:如果您的数据库中存储了任何实际日期(不全是零),那么一切都应该很好

老实说,有所有关于日期格式的清晰细节,你可以很容易地抓住这个想法


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

除了0.0.00之外,你还有其他的吗?(好吧,unix时代的开始是在1970年1月1日。)或者您是否删除了字符串的另一种格式?您的预期输出是什么?@subhanker dd.mm.year
$date_format = date('Y-m-d H-i-s', $time);