Показать сообщение отдельно
  #9 (permalink)  
Старый 20.03.2016, 17:53
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

jack3dm,
Вместо того чтобы создавать новый экземпляр класса new Date(), лучше использовать статический метод Date.now() - быстрее. Зачем три раза вычислять одно и тоже 1000 * 60 * 60 * 24 ? Оптимальнее объявить это значение переменной и ссылаться на него дальше. Константы var days15 = 15; days30 = 30; нет смысла объявлять каждый раз при вызове функции.

<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
</head>

<body>
    <style>
        td {
            border: 1px solid black;
        }
    </style>
    <table>
        <tr>
            <td>Lorem ipsum dolor sit amet</td>
            <td>Velit nesciunt explicabo nam</td>
            <td>19 March 2016 10:10:10 UTC</td>
        </tr>
        <tr>
            <td>Lorem ipsum dolor sit amet</td>
            <td>Velit nesciunt explicabo nam</td>
            <td>1 March 2016 10:10:10 UTC</td>
        </tr>
        <tr>
            <td>Lorem ipsum dolor sit amet</td>
            <td>Velit nesciunt explicabo nam</td>
            <td>30 January 2016 10:10:10 UTC</td>
        </tr>
    </table>

    <script>

        var localTime = Date.now(),
            days15 = 15,
            days30 = 30,
            oneday = 1000 * 60 * 60 * 24;

    $('tr td:last-child').each(function() {

    var jj = Date.parse($(this).text()),
        day = Math.round((localTime - jj) / oneday) ;

    day < days15 ? $(this).css({ 'background-color': 'green' }) : day > days30 ? $(this).css({ 'background-color': 'red' }) : $(this).css({ 'background-color': 'yellow' });
});
    </script>

</body>
</html>
Ответить с цитированием