大家好我有一个访问数据库,使用ODBC_Exec进行php查询。
我有一个While循环,将来自访问数据库表的记录返回到页面上的HTML表格,其中一个字段包含时间。我正在使用StrToTime将日期从访问号码格式化为网页上的可读日期。我很熟悉m是月,我很分钟,我用i。还有其他类似的问题,我的人使用的地方" m"而不是"我"对于分钟和从1开始计算,这不是同一个问题而不是重复的问题。
对于循环返回的前两个记录,当它们出现在表中时它们是正确的。在同一循环的前两个结果之后的每个记录在第二个之后的所有后续时间落后1分钟。
结果显示为:
10/17/2016 03:35:00 PM
10/17/2016 03:39:00 PM
10/17/2016 03:44:00 PM
10/17/2016 03:49:00 PM
10/17/2016 03:54:00 PM
10/17/2016 03:59:00 PM
这是代码
$ApptQuery = "SELECT TBL_Appointments.*, TBL_Schools.*, TBL_Appointments_Status.*, TBL_Subjects.*
FROM TBL_Schools INNER JOIN (TBL_Appointments_Status INNER JOIN (TBL_Subjects INNER JOIN TBL_Appointments ON TBL_Subjects.Subject_ID = TBL_Appointments.Appointment_Subject) ON TBL_Appointments_Status.Status_ID = TBL_Appointments.Appointment_Status) ON TBL_Schools.School_ID = TBL_Subjects.Subject_SchoolID
WHERE TBL_Appointments.Appointment_Event=" . $Event_ID . "
ORDER BY TBL_Appointments.Appointment_Time;";
$ApptSQL = odbc_exec($Database, $ApptQuery);
$ApptSQL2 = odbc_exec($Database, $ApptQuery);
$Count = 0;
Echo "<table class=\"DataTable\" border=\"1\"><tr><td>ID</td><td>Appointment Date</td><td>Time</td><td>Duration</td><td>Status</td><td>Subject ID</td><td>Subject Name</td><td>Action</td></tr>";
While($Appointment = odbc_fetch_array($ApptSQL2))
{
$Appointment_ID = $Appointment['Appointment_ID'];
$Appointment_Date = $Appointment['Appointment_Time'];
$Appointment_Time = $Appointment['Appointment_Time'];
$Appointment_Duration = $Appointment['Appointment_Duration'];
$Appointment_Status = $Appointment['Appointment_Status'];
$Appointment_StatusText = $Appointment['Status_DisplayText'];
$Subject_StudentID = $Appointment['Subject_StudentID'];
$Subject_NameFull = "" . $Appointment['Subject_NameFirst'] . " " . $Appointment['Subject_NameFirst'];
$BookCode = "[<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">View</a>] [<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">Book</a>] [<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">Unbook</a>] [<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">Reserve</a>] [<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">Cancel</a>] [<a href=\"?Page=AppointmentDetail&A=" . $Appointment_ID . "\">Delete</a>]";
Echo "<tr><td>" . $Appointment_ID . "</td><td>" . Date("m/d/Y", StrToTime($Appointment_Date)) . "</td><td>" . Date("h:i A", StrToTime($Appointment_Time)) . "</td><td>" . $Appointment_Duration . " min</td><td>" . $Appointment_StatusText . "</td><td>" . $Subject_StudentID . "</td><td>" . $Subject_NameFull . "</td><td>" . $BookCode . "</td></tr>";
}
Echo "<tr><td colspan=\"8\">" . $CountString . "</td></tr></table>";
答案 0 :(得分:0)
我无法帮助调试您的代码,但是如果您使用了一些“分段”代码,我会恭敬地建议它可能更容易阅读(也许其他人可以更轻松地进行调试)。例如变量pesudocode:
$Appointment_Time_Text = StrToTime($Appointment_Date);
$Appointment_Date_Text = Date("m/d/Y", $Appointment_Time_Text);
一个建议是您可以将日期/时间格式化为SQL中的文本,例如类似的东西:
SELECT FORMAT( Appointment_Time,
'mm/dd/yyyy hh:nn:ss AMPM' ) AS Appointment_Date_Text
FROM TBL_Appointments