• Как перевести секунды во время на javascript?

    // самое простое:
    
    var d = new Date(phptimeInSeconds * 1000),
    hours = d.getHours(),
    minutes = d.getMinutes(); // и т.д.
    
    // вывод:
    alert(hours + ' ч. ' + minutes + ' мин.');
    
    // Если надо просто перевести миллисекунды\секунды в часы минуты:
    var 
           // Из миллисекунд в объект с кол-вом дней, часов, минут, секунд. Например: 22 д. 10 ч. 60 с.
            millisecToTimeStruct = function (ms) {
                var d, h, m, s;
                if (isNaN(ms)) {
                    return {};
                }
                d = ms / (1000 * 60 * 60 * 24);
                h = (d - ~~d) * 24;
                m = (h - ~~h) * 60;
                s = (m - ~~m) * 60;
                return {d: ~~d, h: ~~h, m: ~~m, s: ~~s};
            },
            // форматирует вывод, меняйте по усмотрению.
            toFormattedStr = function(tStruct){
               var res = '';
               if (typeof tStruct === 'object'){
                   res += tStruct.m + ' min. ' + tStruct.s + ' sec.';
               }
               return res;
            };
    
    // client code:
    var
            ms = new Date().getTime(),
            timeStruct = millisecToTimeStruct(ms),
            formattedString = toFormattedStr(timeStruct);
    Ответ написан
    Комментировать
  • Каким шаблонизатором для Requirejs вы пользуетесь и почему?

    @legatdestr Автор вопроса
    Всем спасибо!
    После проб и ошибок, в этом проекте использовал плагин к Requirejs на основе Handlebars

    Кому интересно, подключал примерно так (упрощенный код):
    // index.js - settings
    requirejs.config({
       //....
        "baseUrl": "js",
        "paths": {
            // .......
            "hbs": "./vendors/require-handlebars-plugin/hbs"
        },
        // hbs settings
        "hbs": {
            disableI18n: true, // This disables the i18n helper and
            // doesn't require the json i18n files (e.g. en_us.json)
            // (false by default)
            disableHelpers: false, // When true, won't look for and try to automatically load
            // helpers (false by default)
            helperPathCallback: // Callback to determine the path to look for helpers
                    function (name) {       // ('/templates/helpers/'+name by default)
                        return 'app/templates/helpers/' + name;
                    },
            templateExtension: "html" // ('hbs' by default) Set the extension automatically appended to templates
        }
    });
    
    //  View:
    define(["hbs!app/templates/grid"], function(grid){
         return {
              render: function(dataModel){
                    grid(dataModel);
              } 
         }
    }
    
    // Template "app/templates/grid" - grid.html
    
    {{#each pages}}
    <div class="table">
        <div class="data-rows">
            {{#each rows}}
            <div class="row r{{index}} {{cssClass}}">
                <div class="cabinet">{{formatRoom room}}</div>
                <div class="speciality">{{spec}}</div>
                <div class="fio">{{fio}}</div>
            </div>
            {{/each}}
            <!-- //rows -->
        </div>
    </div>
    
    {{/each}} 
    <!-- //pages-->
    Ответ написан
    Комментировать