Краткий вопрос о форматировании даты php / javascript

#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('-');
  

Демонстрация jsFiddle

ПРАВКА, касающаяся вашего обновления:

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