Конвертировать PHP и JSON кодировать в дату Javascript - PullRequest
2 голосов
/ 01 февраля 2012

Все, я создаю несколько массивов JSON, просматривая базу данных и заполняя некоторые значения.Код для этого:

$return_arr = array();
$fetch = mysql_query("SELECT * FROM calendar_events"); 
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
    $row_array['id'] = $row['id'];
    $row_array['title'] = $row['title'];
    $row_array['start'] = $row['start'];
    $row_array['end'] = $row['end'];
    $row_array['allDay'] = $row['allDay'];
    $row_array['description'] = $row['description'];

    array_push($return_arr,$row_array);
}
echo json_encode($return_arr);

Это прекрасно работает, за исключением того, что не отображает дату правильно.Когда я нахожу примеры с правильно отображаемыми датами, это выглядит так:

{
    title: 'Birthday Party',
    start: new Date(y, m, d, 12, 0),
    end: new Date(y, m, d, 14, 0),
    allDay: false
}

Как я могу использовать PHP для форматирования моей даты таким образом, чтобы она выглядела одинаково.Мои данные хранятся в базе данных как DATETIME.Любые идеи будут с благодарностью!

Спасибо!

Ответы [ 3 ]

4 голосов
/ 01 февраля 2012

попробуйте это:

 $row_array['start'] = date('Y-m-d', strtotime($row['start']));
 $row_array['end'] = date('Y-m-d', strtotime($row['end']));
1 голос
/ 01 февраля 2012

Даты, извлекаемые из MySQL (в массиве $ row), будут иметь форму «ГГГГ-ММ-ДД ЧЧ: ММ: СС», поскольку они хранятся с типом MySQL DATETIME.

"Тип DATETIME используется для значений, которые содержат как дату, так и время частей. MySQL извлекает и отображает значения DATETIME в формате «ГГГГ-ММ-ДД» ЧЧ: MM: SS 'формат. " - Типы DATE, DATETIME и TIMESTAMP - Справочное руководство по MySQL 5.5

Этот формат является одним из поддерживаемых форматов даты и времени класса PHP DateTime . Это означает, что вы можете легко создать объект PHP DateTime из значения MySQL DATETIME.

например. на начальную дату

$start = new DateTime($row['start']);

Затем вы можете использовать метод DateTime :: format в только что созданном объекте DateTime, чтобы распечатать его в виде строки в любом формате, который вам нравится.

например. если вы хотите поместить дату в ваш $ row_array в виде DD-MM-YYYY

$row_array['start'] = $start->format('d-m-Y');

Обратите внимание, что рекомендуется использовать Улучшенное расширение MySQL - mysqli для подключения к базе данных MySQL.

"Если вы используете MySQL версии 4.1.3 или новее, настоятельно рекомендуется использовать вместо этого расширение mysqli." - php.net - обзор mysqli

0 голосов
/ 01 февраля 2012

Используйте функцию php date () для создания строки даты.

$dateStr = date("Y-m-d", $time);

Если вам нужно передать объект даты js, тогда это не решение для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...