查看: 2884|回复: 0

[JavaScript/JQuery] vue2.0 自定义日期时间过滤器

发表于 2018-1-7 11:19:53

方法一:

  1. // template
  2. {{a | data}}
  3. //script
  4. data:{
  5. a: Date.now()
  6. }
  7. filters: {
  8. data:function (input) {
  9. var d = new Date(input);
  10. var year = d.getFullYear();
  11. var month = d.getMonth() + 1;
  12. var day = d.getDate() <10 ? '0' + d.getDate() : '' + d.getDate();
  13. var hour = d.getHours();
  14. var minutes = d.getMinutes();
  15. var seconds = d.getSeconds();
  16. return year+ '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds;
  17. }
复制代码

方法二: 正则

  1. // template
  2. {{date | formatDate}}
  3. //script
  4. import {formatDate} from '../../common/js/date'
  5. filters: {
  6. formatDate (time) {
  7. let date = new Date(time)
  8. return formatDate(date, 'yyyy-MM-dd hh:mm')
  9. }
  10. }
复制代码
  1. //date.js
  2. export function formatDate (date, fmt) {
  3. if (/(y+)/.test(fmt)) {
  4. fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  5. }
  6. let o = {
  7. 'M+': date.getMonth() + 1,
  8. 'd+': date.getDate(),
  9. 'h+': date.getHours(),
  10. 'm+': date.getMinutes(),
  11. 's+': date.getSeconds()
  12. }
  13. for (let k in o) {
  14. if (new RegExp(`(${k})`).test(fmt)) {
  15. let str = o[k] + ''
  16. fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
  17. }
  18. }
  19. return fmt
  20. }
  21. function padLeftZero (str) {
  22. return ('00' + str).substr(str.length)
  23. }
复制代码

以上所述是小编给大家介绍的vue2.0 自定义日期时间过滤器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对程序员之家网站的支持!



回复

使用道具 举报