如何用PHP转换微软访问时间格式

时间:2012-02-08 17:10:01

标签: php sql ms-access

有人可以帮我解决以下问题。

我使用php和sql来查询微软访问数据库。我有一个名为“StartTime”的日期/时间字段,设置为“常规日期”格式。

从微软访问GUI中检查字段时,日期显示为“08:45:00”。

我的问题是当我用我的php和sql检索这些数据然后显示它然后将它写入浏览器它出现如下“1899-12-30 09:00:00”(让我们称之为我将要说的“长日期格式”)。

我已经尝试使用'长日期格式'作为第二个参数来处理php日期函数,但我似乎无法在浏览器中以“08:45:00”格式显示它。 / p>

请有人告诉我我需要做什么。

谢谢

2 个答案:

答案 0 :(得分:1)

问题是MS Access将日期存储为带分数的double。所以你需要相应地解析它。

该数字的整个部分是从1899年12月30日开始的天数。小数部分是一天的分数。因此,您需要将分数乘以24得到小时,将得到的分数乘以60得到分钟,然后将得到的分数乘以60得到秒。

或者,您可以将分数乘以86400(24小时内的秒数),然后使用PHP函数将秒转换为时间。

查看这篇文章: http://support.microsoft.com/kb/210276

答案 1 :(得分:1)

您可以要求Access的数据库引擎仅将这些日期/时间值的时间部分作为格式化字符串:

SELECT Format(StartTime, "hh:nn:ss") AS time_only
FROM YourTable;

这样你就不必转换PHP中的值......只需使用它们即可。