#php #javascript #jquery #mysql #date
#php #javascript #jquery #mysql #Дата
Вопрос:
Мне немного не удается заставить это работать.
Я считываю дату из своей базы данных в yyyy-mm-dd
формате. Однако мне нужно использовать его в моем вызове jQuery ajax в dd-mm-yyyy
формате. Есть ли способ изменить мои даты? Я должен был предвидеть это, когда начал работать над своим приложением, но, увы, я этого не сделал : (
Не хочется менять способ сохранения данных в моей базе данных, поэтому мне было интересно, знает ли кто-нибудь простой способ изменить формат? Спасибо: (
РЕДАКТИРОВАТЬ: Только что столкнулся с другой, похожей проблемой
Я читаю time out, так как, например, 08:00:00
я также хочу разделить это на части. Например
08:00:00 => var a = 8, var b = 00 // ignore seconds
09:30:00 => var a = 9, var b = 30
23:45:00 => var a = 23, var b = 45
10:30:00 => var a = 10, var b = 30
🙁 Спасибо!
Комментарии:
1. Вы пробовали
strtotime()
, а затемdate()
отформатировать его обратно? Редактировать: смотрите ответ bazmegakapa’s
Ответ №1:
Форматируйте дату непосредственно в вашем sql-запросе :
SELECT DATE_FORMAT(fielddate,'%d-%m-%Y') as jsDate, DATE_FORMAT(fielddate,'%m-%d-%Y') as phpdate FROM xxx
Вы можете использовать несколько форматов в одном запросе в соответствии с вашими потребностями (формат для js, один для php, один для прямого отображения …)
Смотрите функцию даты и времени
Ответ №2:
В PHP вы можете легко изменить это.
$date=date('d-m-Y', strtotime('2009-11-12'));
Вы также могли бы достичь этого с помощью Javascript:
var date='2009-11-12'.split('-').reverse().join('-');
ПРАВКА, касающаяся вашего обновления:
var timeArray=myTime.split(':');
это то, что вам здесь нужно. Он захватывает строку и возвращает обычный массив с элементами строки, разделенными на :
. Итак, timeArray[0]
будет час, timeArray[1]
минута.
Комментарии:
1. Спасибо, это сделало именно то, что я хотел.
Ответ №3:
Да, вы можете изменить это, но гггг-мм-дд — это международно принятый способ представления дат в компьютерах, поэтому вам действительно не следует.
Вместо этого вам следует изменить свою базу данных, и если вы хотите представить дату пользователю в другом формате, вы выполняете преобразование только для презентации.
РЕДАКТИРОВАТЬ: Извините, если этот ответ звучит грубо, но я действительно верю, что вы поблагодарите меня позже, если сделаете это. Или, по крайней мере, имейте это в виду до следующего раза 🙂
Комментарии:
1. На самом деле, гггг-мм-дд является общепринятым методом представления дат в УДОБОЧИТАЕМОМ формате. Хранить его таким образом в памяти неэффективно. Большинство компьютерных систем даты и времени обрабатывают данные за считанные секунды и преобразуются в читаемый формат только тогда, когда приходит время представить дату / время в качестве выходных данных.
2. Я храню свои даты в базе данных в формате гггг-мм-дд, что, по вашим словам, является международно принятым способом, поэтому я не понимаю, в чем я ошибаюсь? Мне нужно изменить дату только для презентации, потому что я хочу использовать ее для совместной работы с пользовательским интерфейсом jQuery. Ваш ответ не грубый, не волнуйтесь, именно такого рода ответы заставляют меня задуматься и чему-то научиться, поэтому я рад, что вы опубликовали. Надеюсь, я правильно понял ваш ответ 😉 Спасибо!
3. «На самом деле, гггг-мм-дд — это общепринятый метод представления дат в УДОБОЧИТАЕМОМ формате» — Ах, да, верно. Но часто бывает полезно иметь золотую середину, легко читаемую как для людей, так и для машин, и, насколько я знаю, гггг-мм-дд является стандартом де-факто для этого во всем мире.
4. «Я хочу использовать это для совместной работы с пользовательским интерфейсом jQuery». Ах, поскольку вы сказали jQuery ajax, я предположил, что вы собираетесь отправить дату на сервер в формате дд-мм-гггг.
Ответ №4:
используйте функцию даты:
date("d-m-Y",strtotime($yourdate));
Ответ №5:
<?php
$newdate = date('d-m-Y',strtotime($db_date))
?>
Ответ №6:
Попробуйте это: jquery-плагин DateFormat для jQuery