Как отобразить поле даты и времени MSSQL $ row в PHP - PullRequest
1 голос
/ 02 июля 2019

Я пытаюсь создать простую таблицу, отображающую данные за июнь 2019 года, однако у меня возникают проблемы с правильным выводом строки даты и времени MSSQL.Первоначально он сломал мой код и был пустым, затем я попытался использовать функцию php date () strtotime, которая теперь просто отображает 31 01 1970 для всех столбцов, что неверно.

Вот пример ввода 2016-07-04 00: 00: 00.000

Ниже мой код.

    <?php
$serverName = "SQL,1433";
$connectionInfo = array( "Database"=>"", "UID"=>"", "PWD"=>"");
$conn = sqlsrv_connect( $serverName, $connectionInfo );


$sql = "SELECT TOP 1 * FROM [all sales data]";
$stmt = sqlsrv_query( $conn, $sql);
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
?>

<tr>
                    <td><?php echo $row['Order Point Account'];?></td>
                    <td><?php echo $row['Analysis Category'];?></td>
                    <td><?php echo $row['Branch Code'];?></td>
                    <td><?php echo date("d m Y", strtotime($row->date));?></td>
                    <td><?php echo $row['Product Discount Group'];?></td>
                    <td><?php echo $row['End Product Cost of Sale'];?></td>
                    <td><?php echo $row['End Product Other Value'];?></td>
                    <td><?php echo $row['End Product Sales Value'];?></td>
                    <td><?php echo $row['End Product Analysis Quantity'];?></td>
                    <td><?php echo $row['Invoice Account'];?></td>
                    <td><?php echo $row['Magic Number'];?></td>
                    <td><?php echo $row['Order Number'];?></td>
                    <td><?php echo $row['PAC Level 1'];?></td>
                    <td><?php echo $row['PAC Level 2'];?></td>
                    <td><?php echo $row['PAC Level 3'];?></td>
                    <td><?php echo $row['PAC Level 4'];?></td>
                    <td><?php echo $row['Product Code'];?></td>
                    <td><?php echo $row['Salesman 1'];?></td>
                    <td><?php echo $row['Statement Account'];?></td>
                    <td><?php echo $row['Supplier Account'];?></td>
                    <td><?php echo $row['Contact']?></td>
                    <td><?php echo $row['Order Source'];?></td>
                    <td><?php echo $row['User'];?></td>
                    <td><?php echo $row['Customer Order No'];?></td>
                </tr>

            <?php
            }
            ?>


            </tbody>
            </table>
    </body>
</html>

ниже - переменная vardump

object (DateTime) # 1 (3) {["date"] => string (26) "2016-07-04 00: 00: 00.000000" ["timezone_type"] => int (3) ["timezone"] => string (13) "Европа / Лондон"}

Вот результат print_r ($ row);

Array ([Счет точки заказа] => [Категория анализа] => AD [Код филиала] => 100 [Дата транзакции] => Объект DateTime ([дата] => 2016-07-04 00: 00: 00.000000 [timezone_type] => 3 [часовой пояс] => Европа / Лондон) [Группа скидок на товары] => [КонецСебестоимость продукта] => 165.19999694824 [Другое значение конечного продукта] => 165.2 [Стоимость продажи конечного продукта] => 369.60000610352 [Количество анализа конечного продукта] => 1 [Счет-фактура] => [Магическое число] => 800713 [ПродажиЗаказать Лиne Number] => [Номер заказа] => 319651 [Уровень PAC 1] => d [Уровень PAC 2] => dLB [Уровень PAC 3] => dLB01 [Уровень PAC 4] => dLB0106 [Код продукта] =>[Продавец 1] => 9500 [Учетная запись выписки] => [Учетная запись поставщика] => [Контакт] => факс [Источник заказа] => Факс [Пользователь] => [Заказ клиента] =>)

Есть идеи, что я делаю неправильно, чтобы эти данные отображались правильно?

Большое спасибо!

1 Ответ

0 голосов
/ 02 июля 2019

В вашем коде 4 проблемы:

Проблема 1:

У вас есть опечатка здесь $row,[Transaction Date].

Проблема2:

Ваше имя столбца date не Transaction Date

Проблема 3:

Ваш ответ в форме объекта отсутствует вформат массива.

выпуск 4:

Вы используете t в формате даты, который возвращает Number of days in the given month

<td><?php echo date("t m Y", strtotime($row,['Transaction Date']));?></td>

Должно быть:

<td><?php echo date("d m Y", strtotime($row->date));?></td>

Руководство по PHP

...