Javascript.RU

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

О да! Великолепно
Теперь и хром и файрфокс показывает всё в цвете абсолютно одинаково! А вот сравнивать детально почему буду уже с утра. Спасибо.
Ответить с цитированием
  #12 (permalink)  
Старый 29.03.2018, 03:25
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <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>
  <span>03.04.2018</span><br>
  <span>04.04.2018</span><br>
  <script>
    var now = Date.now(),
    color = ['#F00','#F70','#D90','#AA0','#5D0','#0F0'];
    [].forEach.call(document.querySelectorAll('span'), function(el){
      date = Date.parse(el.textContent.replace(/(\d+)\.(\d+)\.(\d+)/, '$2/$1/$3'));
      var ost = (date - now)/86400000|0;
      ost = ost >= 5 ? 5 : ost<0 ? 0 : ost;
      el.style.color = color[ost];
    });
  </script>
</body>
</html>


поправил чутка для практичности
Ответить с цитированием
  #13 (permalink)  
Старый 29.03.2018, 04:49
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
'$2-$1-$3' так надёжнее!
А разве в JS форматы YYYY-mm-dd и YYYY/mm/dd не разные данные возвращают, имеется ввиду Date.parse()?
Ответить с цитированием
  #14 (permalink)  
Старый 29.03.2018, 08:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

laimas,
ранее было только так "месяц/день/год", сейчас многое зависит от настроек браузера или toLocaleString.
old
https://javascript.ru/Date.parse
new
https://learn.javascript.ru/datetime...и-date-parse

запустите пост №2 в ie
Ответить с цитированием
  #15 (permalink)  
Старый 29.03.2018, 08:29
Новичок на форуме
Отправить личное сообщение для saldek Посмотреть профиль Найти все сообщения от saldek
 
Регистрация: 28.03.2018
Сообщений: 6

Спасибо j0hnik. Но ваш первый пример для меня более понятен, легче его изменять. В этом примере явно моих знаний пока не достаточно
Ответить с цитированием
  #16 (permalink)  
Старый 29.03.2018, 09:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от рони
ранее было только так "месяц/день/год", сейчас многое зависит от настроек браузера
Вот, и разница то может быть приличной. Это я спросил только потому, что о "надежнее" речь была. )
Ответить с цитированием
  #17 (permalink)  
Старый 29.03.2018, 09:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от laimas
Это я спросил только потому, что о "надежнее" речь была.
и в чём ненадёжность если метод кросбраузерный, работает везде от старых Safari и ie до новых Firefox и Google Chrome?
Ответить с цитированием
  #18 (permalink)  
Старый 29.03.2018, 10:02
Новичок на форуме
Отправить личное сообщение для saldek Посмотреть профиль Найти все сообщения от saldek
 
Регистрация: 28.03.2018
Сообщений: 6

Доброе утро. Как правильно игнорировать год при сравнении с текущей датой? К примеру дата в формате 08 июнь 1969 сравнивается с текущей только по дню месяца и месяцу, год - игнорируется.
Заранее благодарю.
Ответить с цитированием
  #19 (permalink)  
Старый 29.03.2018, 10:10
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

А можно и без регулярок и parse
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <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>
  <span>03.04.2018</span><br>
  <span>04.04.2018</span><br>
  <script>
    var now = Date.now(),
    color = ['#F00','#F70','#D90','#AA0','#5D0','#0F0'];
    [].forEach.call(document.querySelectorAll('span'), function(el){
       var comp = el.textContent.split('.');
      date = new Date(comp[2],comp[1] - 1,comp[0]);
      var ost = (date - now)/86400000|0;
      ost = ost >= 5 ? 5 : ost<0 ? 0 : ost;
      el.style.color = color[ost];
    });
  </script>
</body>
</html>
Ответить с цитированием
  #20 (permalink)  
Старый 29.03.2018, 10:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

saldek,
Можно сравнивать по компонентам даты - getDate, getMonth, getFullYear
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в 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