Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2018, 18:06
Новичок на форуме
Отправить личное сообщение для saldek Посмотреть профиль Найти все сообщения от saldek
 
Регистрация: 28.03.2018
Сообщений: 6

Сравнить дату с сегодняшней и поменять стили от ображения даты
Здравствуйте, уважаемые знатоки!
Есть поля дат, заключенные в span, в этих полях уже сохранены даты в формате день.месяц.год (к примеру 28.03.2018)
Вопрос:
Как сравнить все сохраненные даты с сегодняшней и поменять стиль span?
К примеру, если сохраненная дата наступит через 3 дня цвет даты поменять на оранжевый, а если наступит завтра - то на красный?
Спасибо всем за помощь

Последний раз редактировалось saldek, 28.03.2018 в 18:13.
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2018, 20:37
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<span>28.03.2018</span><br>
	<span>29.03.2018</span><br>
	<span>30.03.2018</span><br>
	<span>31.03.2018</span><br>
	<span>01.04.2018</span><br>
	<span>02.04.2018</span><br>
	<script>
		var now = Date.now();
		[].forEach.call(document.querySelectorAll('span'), function(el){
			var date = el.textContent.replace(/(\d+)\.(\d+)\.(\d+)/, '$3,$2,$1');
			date = Date.parse(date);
			var ost = date - now;
			if(ost>86400000*4) el.style.color = '#00ff00';
			else if(ost>86400000*3) el.style.color = '#44CC00';
			else if(ost>86400000*2) el.style.color = '#77AA00';
			else if(ost>86400000) el.style.color = '#DD8800';
			else if(ost>0) el.style.color = '#ff7700';
			else el.style.color = '#ff0000';
			console.log(date);
		});
	</script>
</body>
</html>


цвета если не подходят сами укажите
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2018, 21:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

j0hnik,
'$2-$1-$3' так надёжнее!
else if не слишком ли много!
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2018, 22:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

saldek,
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <span>28.03.2018</span><br>
  <span>29.03.2018</span><br>
  <span>30.03.2018</span><br>
  <span>31.03.2018</span><br>
  <span>01.04.2018</span><br>
  <span>02.04.2018</span><br>
  <script>
    var now = Date.now();
    [].forEach.call(document.querySelectorAll('span'), function(el){
      var color = ['#ff0000','#ff7700','#DD8800','#77AA00','#44CC00','#00ff00'],
      date = el.textContent.replace(/(\d+)\.(\d+)\.(\d+)/, '$2/$1/$3');
      date = Date.parse(date);
      date = (date - now)/86400000|0||0;
      var ost = Math.max(0,Math.min(color.length,date));
      el.style.color = color[ost];
    });
  </script>
</body>
</html>

Последний раз редактировалось рони, 28.03.2018 в 23:35.
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2018, 22:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от saldek
дата наступит через 3 дня цвет даты поменять на оранжевый, а если наступит завтра - то на красный?
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <span>28.03.2018</span><br>
  <span>29.03.2018</span><br>
  <span>30.03.2018</span><br>
  <span>31.03.2018</span><br>
  <span>01.04.2018</span><br>
  <span>02.04.2018</span><br>
  <script>
    var color = {1 : 'Red', 3 : 'Orange'},now = new Date();
     now.setHours(0, 0, 0, 0);
    [].forEach.call(document.querySelectorAll('span'), function(el){
      date = el.textContent.replace(/(\d+)\.(\d+)\.(\d+)/, '$2/$1/$3');
      date = Date.parse(date);
      var ost = (date - now)/86400000|0;
      color[ost] && (el.style.color = color[ost]);
    });
  </script>
</body>
</html>

Последний раз редактировалось рони, 28.03.2018 в 23:34.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2018, 23:07
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от рони Посмотреть сообщение
j0hnik,
'$2-$1-$3' так надёжнее!
точно не поломается?
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2018, 23:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

j0hnik,
проверено мин нет!
Ответить с цитированием
  #8 (permalink)  
Старый 28.03.2018, 23:24
Новичок на форуме
Отправить личное сообщение для saldek Посмотреть профиль Найти все сообщения от saldek
 
Регистрация: 28.03.2018
Сообщений: 6

Очень круто, господа!
Огромное спасибо, вопрос вами раскрыт полностью, премного благодарен. Разберу детально, впредь буду знать и это. Уважаемый j0hnik, в файрфокс 59.0.2 (64-бит) только ваш пример был во все цвета раскрашен, остальные - нет.
Конкретно этот пример
Ответить с цитированием
  #9 (permalink)  
Старый 28.03.2018, 23:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от рони
проверено мин нет!
Ответить с цитированием
  #10 (permalink)  
Старый 28.03.2018, 23:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

saldek,
'$2/$1/$3'

посмотрите примеры выше снова
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в datepicker jquery отобразить отдельно дату месяц и год? drkrol Общие вопросы Javascript 6 19.11.2016 15:23
Сохранить дату в бд с помощью ajax nina_ jQuery 10 30.06.2016 20:49
Сравнить старое и новое значения rostik1991 jQuery 3 08.11.2015 12:49
Как вывести дату, чтобы не повторять скрипт пару раз xXapokalypsesXx Общие вопросы Javascript 10 27.06.2013 13:43
Преобразование строки в дату. Serious2008 Общие вопросы Javascript 5 28.11.2012 14:22