Javascript — DataTable сортировка даты


Javascript — DataTable сортировка даты

А как сделать следующее: click по дате календаря -> дата передана скрипту -> скрипт записал ее в бд и пока все это происходит мы остаемся на странице с календарем?

как я понимаю submit и action теперь не нужны:

А как правильно использовать $.ajax и указать ему, что необходимо передать дату скрипту process.php как только дата на календаре будет выбрана и соответственно окажется в value input-а?

Наверное нужно что-то другое вместо click использовать?
Подскажите, пожалуйста, как это должно быть.

Сообщение от nina_ А как правильно?

Я не знаю (или забыл если ранее сталкивался) этого плагина, но по идее this, это объект на который повешен календарь. На сервер же нужно передавать не dateText, а ключ = dateText, где ключом может быть имя поля, которому и назначен календарь, то есть:

а на сервере принимать как

$_POST[‘name’], где name имя поля.

А для того, чтобы в полной мере использовать дату в базе (выборка/сортировка) тип должен быть DATE, и это формат YYYY-mm-dd

Осваиваю modern toolkit

Запилил грид. в гриде во многих колонках используется свойство renderer.

И видимо по этому сортировка в этих колонках не работает.
А мне нужно

Кто нибудь сталкивался с такой проблемой?

Ответ: Пока тестил нашел еще косяк.
У меня несколько колонок у которых:

Если сортировать(по обычному полю — например дата) то все столбцы (даже те которые имеют renderer) сортируются нормально. А те у которых ячейки widgetcell остаются не сортированными.

т.е. как в начале отрисовались так и остаются

Есть скрипт выполняющий сортировку массива методом быстрой сортировки. Не могу разобраться, как реализовать
подсчет и вывод количества сравнений после сортировки. Помогите пожалуйста!

jquery — дата сортировки по датам, дд / мм / гггг выпуск

Я использую плагин Jquery под названием DataTables

Это фантастика, однако я не могу правильно отсортировать даты в соответствии с форматом дд / мм / гггг.

Я посмотрел на их форматы поддержки, но ни одно из этих исправлений не работает.


Может кто-нибудь здесь помочь мне, пожалуйста?

Решение

Решение jQuery

Добавьте приведенный выше код в скрипт и установите для конкретного столбца значения Date с помощью < "sType": "date-uk" >и другие, как ноль, см. ниже:

Решение CSS

Если вы хотите быстрое решение, вы можете просто добавить фактическое значение DateTime в каждую строку в определенном формате (ГГГГММДД) и сделать его скрытым с помощью CSS, это позволит вам отсортировать этот столбец без каких-либо изменений JavaScript.

HTML

CSS

Другие решения

Сортировка по дате — со скрытым элементом

Преобразовать дату в формат YYYYMMDD и добавить к фактическому значению (DD / MM / YYYY) в

оберните это в элемент, установите стиль display:none; к элементам. Теперь сортировка по дате будет работать как обычная сортировка. То же самое можно применить к сортировке по времени и дате.

Я знаю, что это старый вопрос, и ответы тоже старые. Недавно я наткнулся на простой и понятный способ сортировки дат. Это может быть сделано с помощью HTML5 data-order приписывать

элемент.

Вот что я сделал в своем PHP:

Как указано Вот вам нужно включить Moment.js и плагин Datatable-момент, затем просто объявите формат даты, которую вы используете.
Плагин будет автоматически определять ваши столбцы даты и сортировать их так, как должно быть.
Для объяснения формата moment.js, проверьте Вот .

в php или js просто передайте массив и используйте ортогональность, например:

с двумя библиотеками javascript:
//cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js
а также
//cdn.datatables.net/plug-ins/1.10.15/sorting/datetime-moment.js

тогда только это:

Если вы не хотите использовать momentum.js или любое другое форматирование даты, вы можете добавить формат даты в миллисекундах в значение даты, чтобы сортировка читалась в соответствии с миллисекундами. И скрыть формат даты в миллисекундах.

Образец кода:

HTML

Решение Zaheer Ahmed ‘отлично работает, если вам приходится иметь дело с уже сформированной датой в Великобритании.


У меня была проблема с этим решением, потому что я должен был управлять датой в США.

Я понял это с этим крошечным изменением:

Затем следует ваше определение «aoColumns».

Дата сортировки по датам, дд /мм /гггг выпуск

Я использую плагин Jquery под названием datatables

Цукерберг рекомендует:  Адаптивный веб-дизайн без Bootstrap не обойтись

Это фантастика, однако я не могу правильно отсортировать даты в соответствии с форматом дд /мм /гггг.

Я посмотрел их форматы поддержки, но ни одно из этих исправлений не работает.

Может кто-нибудь здесь помочь мне, пожалуйста?

22 ответа

Решение jQuery

Добавьте приведенный выше код в скрипт и установите для определенного столбца значения Date со значением < "sType": "date-uk" >и другими значениями, равными NULL, см. ниже:

Решение CSS

Если вам нужно быстрое решение, вы можете просто добавить фактическое значение DateTime в каждую строку в определенном формате (ГГГГММДД) и сделать его скрытым с помощью CSS, это позволит вам отсортировать этот столбец без каких-либо изменений JavaScript.

HTML

CSS

Сортировка по дате — со скрытым элементом

Преобразуйте дату в формат ГГГГММДД и добавьте ее к фактическому значению ( ДД /ММ /ГГГГ ) в

, оберните его в элемент, задайте стиль display:none; для элементов. Теперь сортировка по дате будет работать как обычная сортировка. То же самое можно применить к сортировке по дате и времени.

Я знаю, что это старый вопрос, и ответы тоже старые. Недавно я наткнулся на простой и понятный способ сортировки дат. Это можно сделать с помощью HTML5 data-order атрибута

элемент.

Вот что я сделал в своем PHP:

Как указано здесь , вам нужно включить Moment.js и плагин datatable-moment, а затем просто объявите формат даты, который вы используете. Плагин будет автоматически определять ваши столбцы даты и сортировать их так, как должно быть. Чтобы получить пояснения к формату moment.js, посмотрите здесь .

в php или js просто передайте массив и используйте ортогональность, например:


и в виде данных .

с двумя библиотеками javascript: //cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js а также //cdn.datatables.net/plug-ins/1.10.15/sorting/datetime-moment.js

тогда только это:

$ (документ) .ready (function () <

Если вы не хотите использовать momentum.js или любое другое форматирование даты, вы можете добавить формат даты в миллисекундах к значению даты, чтобы сортировка читалась в соответствии с миллисекундами. И скрыть формат даты в миллисекундах.

Пример кода:

HTML

Решение Zaheer Ahmed ‘отлично работает, если вам приходится иметь дело с уже сформированной датой в Великобритании.

У меня была проблема с этим решением, потому что мне приходилось управлять датой в США.

Я понял это с помощью этого крошечного изменения:

Вслед за вашим определением «aoColumns».

Я попробовал это и работал на меня.

Я использовал режим форматирования .ToString(«dd/MM/yyyy»); , затем в моем jQuery.Datatable работает нормально.

Столбец с датами, который вы должны определить с помощью sType, как в приведенном выше коде.

Это решение совершенно неверно. Вы не можете преобразовать дату в число, просто добавив каждый компонент даты. Если вы попробуете эту логику, например, со следующими датами, вы увидите, что она не будет соответствовать правильно:

20/01/2014 = 2035 15.02.2014 = 2031

Дата ведьмы на первом месте, по возрастанию? 20 января? Не в соответствии с этой логикой: P

Правильный способ использования метода parsedate — преобразовать строку в допустимое значение datetime, и они используют функцию getTime для правильного упорядочивания таблицы.

Я хотел бы отметить, что при использовании данных с сервера через Ajax решение является очень простым, но может быть не сразу очевидным.

При возврате массива порядка сортировки Datatables отправит (в $_POST ) массив из 2 элементов, который будет эквивалентно :

Следовательно, вы можете отображать дату в любом формате; просто пусть ваш сервер вернет критерии сортировки, основанные только на sortColumnName .

Например, в PHP (с MySQL) я использую следующее:


Обратите внимание, что поскольку ничего из $_POST не передается в $order или $orderdir , атака между сценариями невозможна.

Теперь просто добавьте запрос MySQL:

запустите запрос и верните только значение dateStarted в Datatables в json.

У меня тоже такая же проблема.

Я использовал span с in td, как 21.03.2020, делая это, datatable рассматривал это как строку и сортировка не работала.

Я удалил span внутри td, и это было исправлено. как 21.03.2020

Я использовал в остальном вызове

** Переменная даты: создана **

Самый простой способ решить эту проблему

Просто измените свой дизайн немного так, как это

Пожалуйста, посмотрите это официальное решение DataTable, используя Moment.js:

Подключаемый модуль для сортировки по дате и времени

Кажется, у меня сработало

нажмите полный объект datetime, выбранный с помощью запроса select из моей базы данных в наборе данных, который будет отрисован в формате данных «2020-01-05 08:45:56»

Строки сортируются правильно, затем я получаю HTML, который я хочу в строке

Как я обнаружил, самый простой способ сортировки в этом случае заключается в добавлении опции «aaSorting» в JS.

Проблема здесь в том, что этот пример будет сортировать записи из 1-го столбца как STRING, но не как даты. Если исходный код позволяет вам изменить формат даты с дд /мм /гггг на гггг /мм /дд, то «aaSorting» будет работать правильно для вас.

Используйте атрибут data-order в

Ваша функция декоратора здесь будет такой:

Если вы получаете свои даты из базы данных и выполняете цикл for для каждой строки и добавляете ее в строку для использования в javascript для автоматического заполнения таблиц данных, это должно выглядеть следующим образом. Обратите внимание, что при использовании трюка со скрытым интервалом вам необходимо учитывать однозначные числа даты, например, если это шестой час, вам нужно добавить ноль перед ним, иначе трюк с интервалом не будет работать в сортировке Пример кода:

Цукерберг рекомендует:  Mysql - Отслеживание событий в MySQL

В столбце, который вы хотите упорядочить, оставьте «sType»: «date-uk» например: — «data»: «OrderDate», «sType»: «date-uk» После завершения сценария Datatable в ajax сохраните следующий код


Тогда вы получите дату 22-10-2020 в этом формате

Источник проблемы — формат даты и времени.

Неверные образцы: «ММ-дд-гггг Ч: мм», «ММ-дд-гггг»

Как отключить сортировку по столбцу в datatable

Я пытаюсь отключить функцию сортировки на одном из моих столбцов.
Я уже пробовал несколько вещей, но они не работали.
Я попытался добавить это: data-sorter=»false» к моему

но он просто проигнорировал его.
Я также пробовал это, но он также просто проигнорировал это:

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

автоматически получает sorting классов, добавленную к нему.
Вот мой код:
Моя таблица:

Мои js:

Пожалуйста, помогите мне. Я искал ответ последние 3 дня.

javascript jquery html-table datatable

1 ответ

1 Решение yash [2020-10-02 11:04:00]

Вы пытались установить «bSort»:false ? Подробнее см. ЭТО

Отключить Сортировка из datatable

Отключить сортировку по определенному столбцу:

Сортировка по типу пользовательских дат с помощью DataTables

Я использую библиотеку DataTable в моем веб-приложении. У меня есть пользовательский формат даты, поэтому моя сортировка не работает. Кто-нибудь может мне помочь? Итак, это мое поле даты:

Но сортировка не работает:

2 ответа

DataTables имеет встроенные функции для сортировки. Для правильной сортировки может потребоваться плагин для формата даты. Это может оказаться полезным: https://datatables.net/plug-ins/sorting/

я сделал пользовательский формат даты datatables, как это :

jQuery dataTables сортировка не работает для формата (mm / dd / yyyy) [duplicate]


Я использую JQuery-плагин с именем datatables

. Его фантастика, однако я не могу правильно сортировать даты в соответствии с форматом dd / mm / yyyy.

Я просмотрел их форматы поддержки, но ни один из этих исправлений, похоже, не работает.

Может ли кто-нибудь здесь помочь мне?

20 ответов

jQuery Solution

Добавьте приведенный выше код в сценарий и задайте конкретный столбец значениями даты с < "sType": "date-uk" >и другие как null, см. ниже:

Решение для CSS

Если вам нужно быстрое решение, вы можете просто добавить фактическое значение DateTime в каждой строке в конкретном (YYYYMMDD) и скрыть его с помощью CSS, это позволит вам сортировать этот столбец без изменения javascript.

Используйте атрибут data-order в теге

, например, (пример Ruby):

Ваша функция декоратора здесь будет:

используйте этот фрагмент!

момент js хорошо работает для всех форматов даты и времени, добавьте этот сниппер, прежде чем инициализировать datatable, как я сделал ранее.

] Также не забудьте загрузить http://momentjs.com/

Дата Сортировка — со скрытым элементом

Преобразование даты в формат YYYYMMDD и добавление к фактическому значению ( DD / MM / YYYY ) в

, оберните его в элемент, установите стиль display:none; в элементы. Теперь сортировка даты будет работать как обычная сортировка. То же самое можно применить к сортировке даты и времени.

Как я нашел, самый простой способ сортировки в этом случае — добавить параметр «aaSorting» в JS.

Проблема заключается в том, что в этом примере будут сортироваться записи из 1-го столбца, такие как STRING, но не как даты. Если исходный код позволяет вам изменить формат даты с dd / mm / yyyy на yyyy / mm / dd, «aaSorting» будет работать правильно для вас.

Для меня, похоже, было

нажать полный объект datetime, выбранный с помощью запроса select из моего db в наборе данных, который будет рисоваться по формату datatable »2020-01-05 08:45: 56 «

Строки сортируются правильно, тогда я получаю html, который я хочу в строке

в php или js просто передают массив и используют ортогональные, например:


Я использовал в остальном вызов

** Date Variable: Created **

Я попробовал это и работал для меня.

] Я использовал режим format .ToString(«dd/MM/yyyy»); , тогда в моем jQuery.Datatable отлично работает.

В столбце у вас есть даты, вы должны определить с помощью sType, например код выше.

Я знаю, что это старый вопрос, и ответы тоже старые. Недавно я столкнулся с простым и чистым способом сортировки дат. Это может быть сделано атрибутом HTML5 data-order для элемента

.

Вот что я сделал в своем PHP:

Если вы получаете свои даты из базы данных и делаете цикл for для каждой строки и добавляете ее в строку, используемую в javascript для автоматического заполнения данных, это должно выглядеть так. Обратите внимание, что при использовании скрытого трюка диапазона вам нужно учитывать однозначные числа даты, например, если он находится на 6-м часе, вам нужно добавить ноль перед тем, как иначе трюк диапазона не будет работать при сортировке. Пример кода:

с двумя javascripts libs: //cdnjs.cloudflare.com/ajax /libs/moment.js/2.8.4/moment.min.js и //cdn.datatables.net/plug-ins/1.10.15/sorting/datetime-moment.js

Если вы не хотите использовать momentum.js или любую другую дату, вы можете добавить формат даты в миллисекундах в значении даты, чтобы сортировка читалась в соответствии с миллисекундой. И скрыть формат даты в миллисекундах.

Цукерберг рекомендует:  Twitter эффект при наведнии курсора мыши

Самый простой способ сортировки этой проблемы

Просто немного измените свой дизайн, как это

Я хотел бы указать, что при использовании данных с сервера через Ajax решение супер просто, но может не сразу проявиться.

При возврате массива порядка сортировки Datatables отправит (в $_POST ) 2-элементный массив, который будет эквивалентен :

Поэтому вы можете отображать дату в любом формате, который вы хотите; просто сервер возвращает критерии сортировки, основанные только на sortColumnName .

Например, в PHP (с MySQL) я использую следующее:

Примечание, что, поскольку ничто из $_POST не передано в $order или $orderdir , атака между скриптами невозможна.

Теперь просто добавьте к запросу MySQL:

запустите запрос и верните только значение dateStarted в Datatables в json.

One more step

Please complete the security check to access codepen.io


Why do I have to complete a CAPTCHA?

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 5354ee6b8d5f9075 • Your IP : 188.64.174.135 • Performance & security by Cloudflare

Как отключить сортировку по столбцу в datatable

Я пытаюсь отключить функцию сортировки на одном из моих столбцов.
Я уже пробовал несколько вещей, но они не работали.
Я попытался добавить это: data-sorter=»false» к моему

но он просто проигнорировал его.
Я также пробовал это, но он также просто проигнорировал это:

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

автоматически получает sorting классов, добавленную к нему.
Вот мой код:
Моя таблица:

Мои js:

Пожалуйста, помогите мне. Я искал ответ последние 3 дня.

javascript jquery html-table datatable

1 ответ

1 Решение yash [2020-10-02 11:04:00]

Вы пытались установить «bSort»:false ? Подробнее см. ЭТО

Отключить Сортировка из datatable

Отключить сортировку по определенному столбцу:

Datatable сортировать по дате правильно

Я использую Django framework для своего веб-сайта, но для отображения информации. Я использую плагин Datatable , поэтому в одном столбце отображается информация о дате, формат, используемый для отображения даты, похож на May. 6, 2020 , поэтому, когда я сортирую date берут порядок как строку, а не дату, поэтому первая дата для отображения выглядит как August 10, 2020 Есть ли способ сортировки по дате с использованием этого формата?

Создан 21 авг. 17 2020-08-21 15:15:09 M. Gar


Показать код, в котором это необходимо. Как вы используете datatable. Было бы очень трудно понять, без какого-либо кода, что именно ваше требование – Arpit Solanki 21 авг. 17 2020-08-21 15:24:47

Вы можете использовать тег данных в этом столбце. – Jingo 21 авг. 17 2020-08-21 16:15:04

javascript даты Параметры сортировки по умолчанию для jquery datatables

datatables сортировка по умолчанию (8)

Datatables поддерживает атрибуты данных HTML5 — * для этой функции.

Он поддерживает несколько столбцов в порядке сортировки (он основан на 0)

Теперь мой jQuery — это просто $(‘table’).DataTables(); и я получаю свой второй и третий столбцы, отсортированные по порядку desc / asc.

Вот еще несколько приятных атрибутов для

которые я снова использую:

data-page-length=»-1″ задает длину страницы для All (проход 25 для длины страницы 25) .

Я пытаюсь установить сортировку по умолчанию во второй столбец в моем jquery datatable. Он по умолчанию сортируется по индексу 0. Я использую «aaSorting»: [[ 1, «asc» ]] но он выделяет столбец, который я не хочу при начальной загрузке. Как я могу установить сортировку по умолчанию для определенного столбца, не выделяя столбец так, как будто сортировка не была задействована, и использовался индексный столбец 0.

используйте это, он работает для меня: «порядок»: [[1, «ASC»]],

Вот фактический код, который делает это .

Чтобы не выделять столбец, измените CSS так:

Лучший вариант — отключить сортировку и просто подавать данные с требуемым порядком сортировки (из базы данных или другого источника). Попробуйте добавить это в свой «datatable»: «bSort»: false

Вы можете использовать функцию fnSort, см. Подробности здесь:

Просто включите следующий код:

Полная справочная статья с примером:

Это сработало для меня:

Есть несколько вариантов:

После инициализации DataTables удалите классы сортировки в элементе TD в TBODY.

Отключите классы сортировки, используя http://datatables.net/ref#bSortClasses . Проблема заключается в том, что он отключит классы сортировки для запросов на сортировку пользователей — что может быть или не быть тем, что вы хотите.

Пусть ваш сервер выведет таблицу в требуемом порядке сортировки и не применяет сортировку по умолчанию в таблице ( aaSorting:[] ).

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих