2016-10-12 11 views
-2

こんにちは、私はODBC_Execを使用して、アクセスデータベース、PHPクエリを持っています。PHP strtotimeは1分で終了します。 NOT日付文字列関連

アクセスデータベーステーブルからページのHTMLテーブルにレコードを返すWhileループがあります。フィールドの1つに時間が含まれています。私はStrToTimeを使用してアクセス番号からウェブページ上の読み取り可能な日付に日付をフォーマットしています。私はmが月であることに慣れています、そして私は分です、私は私を使っています。他にも同じような質問があり、人が「i」の代わりに「m」を使用し、分数が1である場合、これは同じ問題ではなく、重複する質問ではありません。

ループによって返された最初の2つのレコードは、テーブルに表示されるときに正しいものです。同じループからの最初の2つの結果の後のすべてのレコードは、2番目以降のすべての後続の時間の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

です他の誰かがデバッグするために、おそらく)あなたがいくつかの 'ステージング'変数を使用した場合pesudocode:

たとえば、SQLのテキストとして日付/時刻を書式設定することができます。次のようなもの:

SELECT FORMAT(Appointment_Time, 
      'mm/dd/yyyy hh:nn:ss AMPM') AS Appointment_Date_Text 
    FROM TBL_Appointments 
関連する問題