Вывод дат в таблицу
Здравствуйте, подскажите пожалуйста как можно сделать следующее:
есть таблица, в одном из столбцов в которой должны выводится даты на две недели вперед. И что бы при истечении этих двух недель выводились новые даты для последующих двух недель. Пример таблицы здесь, хотя она не закончена, но для обьяснения задачи подходит. Я в Javascript не очень силен, поэтому желательно что то готовое :) Сайт на ВордПресс, так что плагин какой нибудь тоже подойдет Спасибо заранее UPD. Ниже привожу пример требуемой таблицы. Нужно, что бы даты самозаменялись после этих двух недель 07.01.13 Masha 08.01.13 Petya 09.01.13 Katya 10.01.13 Vasya 11.01.13 Alena 12.01.13 Kolya 13.01.13 Serega 14.01.13 Oleg 15.01.13 Lada 16.01.13 Nikita 17.01.13 Anya 18.01.13 Daniil 19.01.13 Dmitriy 20.01.13 Alexey Так должно быть по истечению этих двух недель: 21.01.13 22.01.13 23.01.13 24.01.13 25.01.13 26.01.13 27.01.13 28.01.13 29.01.13 30.01.13 31.01.13 01.02.13 02.02.13 03.02.13 И по истечению этих двух, следующие две и так далее... |
Сделайте в топике пару(или скок там) колонок с реальными датами, дабы по сто раз не пояснять
|
Эээ тут лучше ссылку, http://dkstudio.net/work/john/
И пару столбиков с текстом(не HTML) реальных дат, посколь непонятен алгоритм |
Цитата:
|
Цитата:
|
Добавил. Так наверное будет наглядно
|
сейчас покурочу
|
Не увидел в таблице http://dkstudio.net/work/john/ данных вышеприведённого формата,
поэтому думайте сами из какой колонки их брать (см переменную N в скрипте) Подразумевается что дата формата 07.01.13 расположена в одной колонке $(document).ready(function(){ var Delta=1000*60*60*24*14 //Добавляемое Кол-во миллисекунд function dateExchang(d,Delta) { a=a.replace(/\./g,' ').replace(/\s(\d\d)\s*$/,' 20$1') a=a.replace(/^(.{3})(.{3})/,'$2$1') var d = new Date(); d.setTime(Date.parse(a)+Delta); d=d.split(/\s+/) return d; } var N=1; //Номер колонки(1- это вторая, первая - 0) откуда берем - заменяем и впихиваем $("div.entry-content>table tr").each(function(){ var a=$(this).find('td').eq(N); a.text(dateExchang(a.text(),Delta)); }); }); |
Спасибо за скрипт, очень благодарен. Но я не совсем понимаю как его применить. Я обновил таблицу на сайте (первая таблица), и проставил в ней даты через HTML вручную. А не подскажете ли как сделать что бы даты проставлялись автоматически скриптом? Насколько я понимаю, нужно поесить событие onLoad на каждую строку таблицы, но что делать после этого? Тоесть могли бы вы применить этот скрипт к приведенной таблице?
Вот код таблицы <tbody> <tr> <td><strong>Date</strong></td> </tr> <tr> <td><strong>07.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>08.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>09.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>10.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>11.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>12.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>13.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>14.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>15.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>16..01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>17.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>18.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>19.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>20.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> </tbody> </table> Спасибо заранее |
Dimas95, См спойлер!
<script src="http://code.jquery.com/jquery-latest.js"></script> <div class="entry-content"> <table> <tbody> <tr> <td><strong>Date</strong></td> </tr> <tr> <td><strong>07.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>08.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>09.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>10.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>11.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>12.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>13.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong><strong>14.01.13</strong></strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>15.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>16.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>17.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>18.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>19.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> <tr> <td><strong>20.01.13</strong></td> <td><strong><strong>Name</strong></strong></td> </tr> </tbody> </table> </div> <script type="text/javascript"> $(document).ready(function(){ var Delta=1000*60*60*24*14 //Добавляемое Кол-во миллисекунд function dateExchang(a,Delta) { a=a.replace(/\./g,' ').replace(/\s(\d\d)\s*$/,' 20$1'); a=a.replace(/^(.{3})(.{3})/,'$2$1'); var d = new Date();d.setTime(Date.parse(a)+Delta); var month=("0"+(d.getMonth()+1)).replace(/(\d\d$)/,'$1');d=d.toString().split(/\s+/); d=d[2]+"."+month+"."+d[3]; return d; } var N=0; //Номер колонки(1- это вторая, первая - 0) откуда берем - заменяем и впихиваем $("div.entry-content>table tr").each(function(){ var a=$(this).find('td').eq(N).find('strong:last'); var b=a.text(); if(b.split(".").length==3){a.text(dateExchang(b,Delta))} }); }); </script> Cкрипт пока тупо добавляет 14 дней к сушествующим в таблице//Обновление дат по окончании cрока- пока не делал (В вообще какой в данном деянии заложен аргумент ? - Для чего этот финт ? |
Спасибо, а начало отсчета времени начинается с даты, установленной на компьютере пользователя?
Давайте я немного поясню для чего это делается, и наверное намного легче будет понять суть и найти простое решение. Есть таблица, в которую работники будут вносить данные, кто когда работает. Тоесть как я приводил пример: 07.01.13 Masha 08.01.13 Petya 09.01.13 Katya А так как изменять дату каждый раз по истечению двух недель это слишком накладно, то нужно что бы дата сама менялась. И еще вопрос, будут ли выводится даты для двух недель, а потом меняться сразу для следющих недель, или ежедневно будет добавлятся новая дата и удаляться предыдущая? Спасибо огромное за помощь |
Dimas95,
По идее задача подстановки Дат, это задача сервера, а не клиента, Поскольку хош - не хочешь - эти данные нужно где то хранить на клиенте и, если он зайдет с нового устройства - этих данных у него не будет и вид таблицы будет точно такой - какова она пришла с сервера Т.е однократная замена возможна - а для повторных - нет общего для всех устройства хранения, кроме как сервер. |
Спасибо.
А не знаете ли как это реализовать на стороне сервера? Или возможно ли каким то образом Javascript -ом цеплять дату с сервера, и на ее основе добавлять последующие даты? И в случае если я буду использовать только предоставленный Вами скрипт, он будет полность и автономно работать? Спасибо |
Цитата:
если не ответят - возможно стоит запостить в топике http://javascript.ru/forum/server/ |
Ок, спсибо большое, немножко позже еще в ту ветку напишу.
И все таки, тот скрипт он полностью рабочий и будет обновляться каждые две недели, опираясь на дату компьютера? Спасибо за помощь |
Цитата:
И заменяеи на две недели вперед от текущей табличной даты |
Я сейчас протестировал, и понял что скрипт проблему то и не решает. Или возможно я то то не правильно делаю.
Я ввел единственную дату в таблицу, 07.01.13, а в остальных ячейках удалил даты, в надежде что скрипт сам подставит последующие даты. Но он прибавил две недели только к первому значению, и вывел уже измененную дату вместо 07.01.13, а в остальные ячейки ничего не выдал. Просто получается что все равно приходится вручную прописывать даты, что бы скрипт их уже обрабатывал. А возможно ли сделать так, что бы прописать одну дату, в первой ячейке, и скрипт будет отталкиваться от нее, и вставлять уже измененные значение в слудующие ячейки? |
Часовой пояс GMT +3, время: 07:16. |