Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как изменить формат даты у текста? (https://javascript.ru/forum/misc/66102-kak-izmenit-format-daty-u-teksta.html)

drkrol 25.11.2016 00:14

Как изменить формат даты у текста?
 
Здравствуйте. На сайте есть множество блоков с классом date. Формат даты в них указан, как "гггг-мм-дд". Как изменить у всех блоков с классом date вид на "дд.мм.гггг"? т.е. через точку и в обратном порядке. https://jsfiddle.net/bmsz7adL/

drkrol 25.11.2016 02:44

)))) я из php получаю данные в виде yyyy-mm-dd. phpmyadmin никак мне не поддаётся и я не могу изменить формат даты. Ну я и подумал: если гора не идет к магомеду, магомед пойдет к горе

ksa 25.11.2016 09:01

drkrol, как вариант...

<div class="date">2016-11-25</div>
<div class="date">2016-11-26</div>
<div class="date">2016-11-27</div>
<input type="text" value="2016-11-29">
<div class="never">2016-12-01</div>
<script type='text/javascript'>
var obj=document.querySelectorAll('.date');
for (var i=0; i<obj.length; i++){
	obj[i].innerHTML=obj[i].innerHTML.replace(/(\d+)-(\d+)-(\d+)/,'$3.$2.$1');
};
</script>

Гробовщик 25.11.2016 09:42

Цитата:

Сообщение от drkrol (Сообщение 436139)
)))) я из php получаю данные в виде yyyy-mm-dd. phpmyadmin никак мне не поддаётся и я не могу изменить формат даты. Ну я и подумал: если гора не идет к магомеду, магомед пойдет к горе

Ну в MySQL есть функции
Код:

DATE_FORMAT( datecol , '%d.%m.%Y')  AS datecol
SELECT DATE_FORMAT(dateColumn,'%d.%m.%Y') AS dateColumn FROM table

И ссылочка на документацию ТЫК
Да и сам php неплохо справляется с данной задачей
$datetime=2016-11-25;
$today=date("D.m.Y",strtotime($datetime))

ksa предложил конечно хороший и рабочий вариант, но я бы всё равно советовал бы вам использовать для этих целей MySql или php
Я бы пользовался MySQL

ksa 25.11.2016 09:51

Цитата:

Сообщение от Гробовщик
всё равно советовал бы вам использовать для этих целей MySql или php

Праильное решееение! (с)

laimas 25.11.2016 13:54

Цитата:

Сообщение от Гробовщик
$today=date("D.m.Y",strtotime($datetime))

"d.m.Y"

drkrol 25.11.2016 14:06

ksa,
Гробовщик,
Да прикол в том, что у меня не получилось в mysql поменять формат даты.
Я написал "SELECT DATE_FORMAT(dateend,'%d.%m.%Y') AS dateend FROM main", а мне в ответ " Данное выделение не содержит уникального столбца. Изменение сетки, выставление галочки, редактирование, копирование и удаление невозможно".

Внизу можно видеть, что, вроде, формат поменялся, но, перейдя обратно в таблицу, всё останется так, как было...

laimas 25.11.2016 14:14

А причем тут РМА? Это нужно делать в запросе к базе, ибо в самой базе дата всегда будет в формате YYYY-mm-dd, а вот выборку можно делать в любом формате.

То что на картинке означает, что вы не сможете редактировать записи из в РМА пока не укажите уникальный индекс какому либо полю (правда любому, это к слову, а не к действию).

drkrol 25.11.2016 14:35

laimas,
так. подождите. Вы предлагаете решить эту проблему на уровне mysql. А потом выходит, что это решается далеко не в mysql, а в самом php файле.

laimas 25.11.2016 15:48

Цитата:

Сообщение от drkrol
А потом выходит, что это решается далеко не в mysql

Это как раз нужно решать на уровне sql-запроса, а не заниматься ерундой.

drkrol 25.11.2016 21:54

короч решил себе проблему вот таким способом
document.querySelectorAll('.date').forEach(function(el, index, arr){el.innerText = el.innerText.split('-').reverse().join('.');})

Гробовщик 29.11.2016 06:19

drkrol,
Друг, ну что ты ерундой страдаешь

Вместо твоего запроса "SELECT" ты пишешь тот, что сам написал выше и его выводишь (делаешь это в php файле)
$strSQL = "SELECT DATE_FORMAT(dateend,'%d.%m.%Y') AS dateend FROM main";
	$rs = mysql_query($strSQL);
	while($row = mysql_fetch_array($rs)) {
	  echo $row['dateend'] . "<br />";
	  }

В базе у тебя ничего не поменяется, останется то же самое. А с такими костылями ты вспотеешь потом, при пером же исправлении

Гробовщик 29.11.2016 06:22

laimas,
Цитата:

Сообщение от laimas
"d.m.Y"

А может я и планировал день недели выводить=)
P.S. На самом деле хорошее замечание

drkrol 30.11.2016 03:31

Да не. Вроде всё ровно. У меня везде идёт yy.mm.dd. А на сайте я либо определённым блокам меняю вид, либо делаю getDate и получаю каждую часть даты отдельно.

laimas 30.11.2016 03:38

drkrol,
формат вывода даты нужно менять в запросах, какой не важно, хоть в клеточку, и как это делается уже не раз говорилось. Вы же вместо простого занимаетесь хренью типа getDate.


Часовой пояс GMT +3, время: 05:22.