PHP: DATETIME помощь - PullRequest
       16

PHP: DATETIME помощь

3 голосов
/ 16 ноября 2010

Я знаю, что в интернете достаточно информации о дате и времени, но у меня возникают проблемы с использованием того, что я видел.

У меня есть управление каландром, подключенное к текстовому полю.Он принимает его в форме 15/11/2010 (британский).Я использую его для запроса полей даты и времени в базе данных SQL-сервера в формате 15/11/2010 00: 00: 00.

После захвата дат при обратной передаче я передаю значения в свой метод, который пытается преобразоватьтекст в формате времени.Когда я запрашиваю что-то между 01.01.2010 и 01.07.2010, я получаю ряд результатов.Когда я изменяю это между 01.01.2010 и 30.10.2010, я получаю сообщение об ошибке.Ошибка недействительна foreach (еще не обнаружил ошибку).Я предполагаю, что это как-то связано с моими форматами?

function getSupportTicketsbySubIssueAndDate($subissueid, $from, $to){

    $subissueid = $this->ms_escape_string($subissueid);

    $from = date("DD/MM/YY", strtotime($from));
    $to = date("DD/MM/YY", strtotime($to));

    $connection = new Connections();
    $conn = $connection->connectToWarehouse();
    $atid = $_SESSION['saveddata']['autotaskid'];


    $tsql = "SELECT wh_task.task_id, wh_task.task_name, wh_task.task_description, wh_task.task_number, wh_task.reported_by_name, wh_task.create_time, wh_resource.first_name, wh_resource.last_name, wh_task_status.task_status_name ".
            "FROM wh_task_status INNER JOIN (wh_task INNER JOIN wh_resource ON wh_task.assigned_resource_id = wh_resource.resource_id) ON wh_task_status.task_status_id = wh_task.task_status_id ".
            "WHERE (account_id = $atid) AND (subissue_type_id = $subissueid) AND (((wh_task.create_time) Between '$from' And '$to'))".
            "ORDER BY create_time DESC";


    // set up array to hold each of the issue types and the number of tickets in each
    $ticket;

    $stmt = sqlsrv_query( $conn, $tsql);
    if( $stmt === false)
    {
             echo "Error in query preparation/execution.\n";
             die( print_r( sqlsrv_errors(), true));
    }

    $x = 0;
    /* Retrieve each row as an associative array and display the results.*/
    while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
    {
            $ticket[$x][0] = $row['task_name'];
            $ticket[$x][1] = $row['task_description'];
            $ticket[$x][2] = $row['task_number'];
            $ticket[$x][3] = $row['reported_by_name'];
            $ticket[$x][4] = $row['first_name'];
            $ticket[$x][5] = $row['last_name'];
            $ticket[$x][6] = $row['task_status_name'];
            $ticket[$x][7] = $row['create_time'];
            $ticket[$x][8] = $row['task_id'];

            $x++;
    }

    return $ticket;
}

Любая помощь наиболее ценится!

Джонси

Ответы [ 2 ]

4 голосов
/ 16 ноября 2010

Я не уверен, правильно ли вы форматируете даты. Вы можете найти все правила форматирования внизу через размещенный URL

date("DD/MM/YY ...

Это не сработает, потому что они не так отформатированы в PHP. Это:

date("d/m/y ...

изменит формат на ДД / ММ / ГГ. :)

http://php.net/manual/en/function.date.php

1 голос
/ 16 ноября 2010

дата ( "DD / MM / YY");выдаст SATSAT / DECDEC / 2010201020102010 ..
уверен, что вы хотите date("d/m/Y",...

...