1. JavaScript / Говнокод #1898

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    var currentDate = new Date();
    var currentDay = currentDate.getDay();
    var currentMonth = currentDate.getMonth();
    var currentYear = currentDate.getYear();
    var currentHour = currentDate.getHours();
    var currentMinute = currentDate.getMinutes();
    var currentSecond = currentDate.getSeconds();
    if (currentMonth < 10) {
    	currentMonth = '0' + currentMonth;
    }
    if (currentDay < 10) {
    	currentDay = '0' + currentDay;
    }
    if (currentHour < 10) {
    	currentHour = '0' + currentHour;
    }
    if (currentMinute < 10) {
    	currentMinute = '0' + currentMinute;
    }
    if (currentSecond < 10) {
    	currentSecond = '0' + currentSecond;
    }

    говно

    Запостил: Sadie, 25 Сентября 2009

    Комментарии (27) RSS

    • а как по-другому? на js только так
      Ответить
    • Автор поста, расскажи что ты сам делаешь для таких случаев.
      Ответить
      • я, например, делаю google << "date format"
        и первой ссылкой получаю прекрасную реализацию:
        http://blog.stevenlevithan.com/archives/date-time-format
        Ответить
        • а что по вашему делает
          while (val.length < len) val = "0" + val;
          внутри http://blog.stevenlevithan.com/archives/date-time-format
          Ответить
    • Не, можно вынести паддинг в отдельную функцию, но в целом будет так же.
      Ответить
    • это говнокод хотябы потому что 5 if можно заменить одним циклом, а 6 переменных одним массивом
      Ответить
      • Т.е., предлагаете сначала с помощью currentDate.getDay() и остальных функций загнать в массив. В цикле сделать преобразования, а потом массив построчно загнать в переменные :)
        И где больший говнокод?
        Ответить
        • Я просто о.еваю от таких предположений! Вы ещё не научились читать элемент массива?
          Ответить
          • А потом через недельку мучительно сиди и вспоминай, currentDate[2] это у меня месяц или часы :)
            Ответить
            • а коменты зачем придумали
              Ответить
              • Явно не для этого, для этого придумали значащие имена переменных
                Ответить
                • ну если человек кроме var ничего придумать не может, а запомнить тем более
                  Ответить
                  • Попадись мне Ваш код, где вместо понятных переменных была бы работа с числовыми индексами, точно бы сюда запостил код :)
                    Ответить
                    • Сразу видно человек никогда не писал на assembler'е
                      Ответить
                      • Здесь виртуальная машина, а не ассемблер. Динамические массивы будут работать медленнее, да и работать с ними неудобнее.
                        Ответить
    • я бы просто .toLocaleString() использовал, а месяц бы заменил рег. выражением
      Ответить
    • var MyDate = {

      Init: function ( time )
      {
      var Times = {
      Day: time.getDay(),
      Month: time.getMonth(),
      Year: time.getYear(),
      Hour: time.getHours(),
      Minute: time.getMinutes(),
      Second: time.getSeconds()
      };

      for ( var key in Times )
      {

      if ( key > 10 ) key = '0' + key;

      }

      return Times;

      }

      }

      var Date = MyDate.Init( new Date() );
      Ответить
      • key < 10
        Ответить
      • [code=javascript]new Date().toLocaleFormat('%d.%m.%y %H:%M')[code]
        так что все вы тут эти самые )
        Ответить
        • тут как бы задача не форматировать дату, а оперировать с ней
          Ответить
          • Да ну? А по-моему, именно чтобы потом выдать в строке :) toLocaleFormat -- must use, а не говно плодить
            Ответить
            • ну ок, реализуй вот это с помощью toLocaleFormat:
              if ( key > 10 ) key = '0' + key;
              Ответить
              • ппц... а зачем? тот код, который запостил ТС, в моем понимании, предназначем для того, чтобы вывести дату в некотором формате (в данном случае с ведущими нулями). toLocaleFormat прекрасно справляется с этой задачей, более того, он для нее предназначен. А забивать гвозди микроскопом -- это не ко мне, спс.
                Ответить
                • я не вникал что он хотел сделать, может условия и изменились бы =) например было бы +1, а не ноль в начало, там условные операторы, а у тебя просто принт, еслиб озвучили задачу другое дело
                  Ответить
    • toLocaleFormat разве кроссбраузерно?
      Ответить

    Добавить комментарий