JST[javascript Template] 通過自訂標識符統一時間格式

來源:互聯網
上載者:User

資料庫取出塞給DO的時間一般是: Thu Nov 25 2010 18:29:21 GMT+0800 這種格式

在使用jst動態渲染模板的時候,這樣會直接按照字串輸出到頁面,所以需要將時間進行轉換,成普通的2010-10-10的格式

有兩種方式可以解決,一是通過將外面的js轉換方法作為一個參數的形式直接塞進渲染參數中,比如:

 

var change = function(time){ ... } var param = {"change":change};

這樣在jst模板中,需要寫成

{var timeStr = change(_item.date)} ${timeStr}

 

還有一種推薦寫法,是將上述的js方法作為一種自訂標識符的形式,這樣在jst模板中只需要用諸如:

${_item.date|changeTime}

就可以完成自動轉換,具體的js代碼:

var myModifiers = { timeFormat : function(thisvalue){ return changeStrToFormatTimeStr(thisvalue); } }; var arr = function(arg){ return getLoops(arg,true); } var param = {"result":result,"func":arr}; if (null == result){ param = {"result":"","func":arr}; } param._MODIFIERS = myModifiers; $("commentShowDIV").innerHTML = TrimPath.parseTemplate($("commentDIVHTML").value).process(param);

 

 // 將時間串轉換成特定的格式 function changeStrToFormatTimeStr(timeStr){ return formatTime(toTime(timeStr),"yyyy-MM-dd HH:mm"); } // 字串轉換成時間 function toTime(s){ var converted = Date.parse(s); var myDate = new Date(converted); if (isNaN(myDate)) { var arys= s.split('-'); myDate = new Date(arys[0],--arys[1],arys[2]); } return myDate; } // 時間格式轉換 function formatTime(date,formatStr) { var str = formatStr; var Week = ['日','一','二','三','四','五','六']; str=str.replace(/yyyy|YYYY/,date.getFullYear()); str=str.replace(/yy|YY/,(date.getYear() % 100)>9?(date.getYear() % 100).toString():'0' + (date.getYear() % 100)); str=str.replace(/MM/,date.getMonth()>9?date.getMonth().toString():'0' + date.getMonth()); str=str.replace(/M/g,date.getMonth()); str=str.replace(/w|W/g,Week[date.getDay()]); str=str.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate()); str=str.replace(/d|D/g,date.getDate()); str=str.replace(/hh|HH/,date.getHours()>9?date.getHours().toString():'0' + date.getHours()); str=str.replace(/h|H/g,date.getHours()); str=str.replace(/mm/,date.getMinutes()>9?date.getMinutes().toString():'0' + date.getMinutes()); str=str.replace(/m/g,date.getMinutes()); str=str.replace(/ss|SS/,date.getSeconds()>9?date.getSeconds().toString():'0' + date.getSeconds()); str=str.replace(/s|S/g,date.getSeconds()); return str; }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.