我在数据库中存储日期时间戳(SQL Server)。
我只是用它来获取当前时间:db.collection.aggregate(
[
{
'$geoNear': {
'near': {
'type': 'Point',
'coordinates': [ -77.395410 , 38.967995 ]
},
'spherical': true,
'distanceField': 'dist',
'maxDistance': 5000
}
},
{
$match:{_id:{$nin: [ObjectId("5716163704ca42c7b579c7e3")]}}
}
]);
哪个工作正常。
在数据库中它看起来完全相同(格式),但是,当我从数据库中获取日期时间时格式完全关闭。
例如,日期在数据库中显示为date('Y-m-d H:i:s')
,但当我在PHP中读取数据时,它变为19-4-2016 13:29:36
。
我从数据库中读取它的代码:
apr 19 2016 01:29:36:000
$dateFromDB = /* Sql query here.. */;
$myTimestamp = date('Y-m-d H:i:s', strtotime($dateFromDB));
变量回声:$dateFromDB
apr 19 2016 01:29:36:000
回声:$myTimestamp
日期作为1970-01-01 01:00:00
存储在数据库中,请注意日期格式在数据库表中看起来很好,当它被读取时它被搞砸了PHP方面。
答案 0 :(得分:2)
来自问题:日期例如在数据库中显示为19-4-2016 13:29:36
19-4-2016 13:29:36
格式应为2016-04-19 13:29:36 (Y-m-d H:i:s)
。
答案 1 :(得分:0)
@Dubb: - 我使用相同的日期存储在数据库中,然后尝试检索它。我可以使用与之前存储的格式相同的格式进行检索。我使用此代码从数据库中获取: -
if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
$ff = $row["dates"];
echo date('Y-m-d H:i:s', strtotime($ff)) . "<br>";
}
}
else
{
echo "0 results";
}
如果可能,请描述您的表格列格式