moment——日期格式化常用示例

<template>
  <div id="app" style="text-align: center;">
    <h1>{{ msg | format}}</h1>
  </div>
</template>

<script>
import moment from 'moment'
import 'moment/locale/zh-cn'
moment.locale('zh-cn')
export default {
  name: 'app',
  data () {
    return {
      msg: new Date
    }
  },
  filters:{
    format(val){
      // return moment(val).calendar() //默认为英文、引入后设置格式
      // return moment(val).format('YYYY年MM月DD日') //自定义方案1,简写:LL 或 ll
      // return moment(val).format('YYYY-MM-DD HH:mm:ss') //大写HH为24小时制,小写dd为星期
      // return moment(val).format('hh:mm:ss a') //12小时制
      // return moment(val).format('YYYYMMDDHHmmss') //纯数字日期
      // return moment(val).subtract(1, "days").format("YYYY-MM-DD HH:mm:ss") //1天前(add:后):weeks、months、years、hours、minutes、seconds
      // return moment(val).format("LLLL") //全中文日期
      // return moment(val).format("dddd") //获取星期
      // return moment(val).valueOf() //完整的时间戳
      // return moment(val).format('X') //秒结尾
      // return moment(val).format('x') //毫秒结尾
      return moment(val).format('LLLL')
    }
  }
}
</script>

 常用时间范围设置:

//获取本日、本周week、本月month、本年year,注意没有yesterday,可以通过subtract(1,'days')设置,这里带xxx-s!!!
  const startDate = moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'); 
  const startDate = moment().endOf('day').format('YYYY-MM-DD HH:mm:ss');

如果是从今天开始到80年后:

[moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'),moment().endOf('day').add(80, "years").format('YYYY-MM-DD HH:mm:ss')],// 当前时间2019-12-25 00:00:00——2099-12-31 23:59:59

【模板】:

const pickerOptionsTime = {
  shortcuts: [
    {
      text: '昨天',
      onClick (picker) {
        const date = [moment().startOf('day').subtract(1, "days").format('YYYY-MM-DD HH:mm:ss'),moment().endOf('day').subtract(1, "days").format('YYYY-MM-DD HH:mm:ss')]
        picker.$emit('pick', date)
      }
    }, {
      text: '当天',
      onClick (picker) {
        const date = [moment().startOf('day').format('YYYY-MM-DD HH:mm:ss'),moment().endOf('day').format('YYYY-MM-DD HH:mm:ss')]
        picker.$emit('pick', date)
      }
    }, {
      text: '本周',
      onClick (picker) {
        const date = [moment().startOf('week').format('YYYY-MM-DD HH:mm:ss'),moment().endOf('week').format('YYYY-MM-DD HH:mm:ss')]
        picker.$emit('pick', date)
      }
    }
  ]
}

封装的elementUI搜索表单:

<template>
  <div class="search-text-form">
    <el-form style="display:inline-block" inline :model="param" :rules="rules" ref="param">
      <el-form-item label="起止时间:" class="search-text-form-item" prop="time">
        <el-date-picker
          clearable
          id="popover_select_time"
          v-model="param.time"
          type="datetimerange"
          :picker-options="pickerOptions"
          format="yyyy-MM-dd HH:mm:ss"
          value-format="yyyy-MM-dd HH:mm:ss"
          :default-time="['00:00:00', '23:59:59']"
          range-separator="-"
          start-placeholder="开始时间"
          end-placeholder="结束时间"
        />
      </el-form-item>
      <el-form-item label="任务状态:" class="search-text-form-item" prop="status">
        <el-select
          id="popover_select_status"
          v-model="param.status"
          placeholder="请选择任务状态"
          clearable
        >
          <el-option
            style="text-align: center;"
            v-for="(item,index) in statusOptions"
            :key="index"
            :label="item.cname"
            :value="item.ename"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="关键字:" class="search-text-form-item" prop="kwd">
        <el-input
          id="popover_select_kwd"
          style=" 180px;"
          v-model="param.kwd"
          placeholder="多个关键字,使用空格分开"
          clearable
        />
      </el-form-item>
      <el-form-item class="search-text-form-item">
        <el-button
          round
          id="popover_select_clear"
          :disabled="disabledSearch"
          @click="searchFormChange('clear')"
        >清空</el-button>
        <el-button
          round
          id="popover_select_search"
          style="float: right"
          type="primary"
          plain
          @click="searchFormChange(param)"
        >查询</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
import { pickerOptionsTime } from "@/utils/appManage"; // 公共的匹配值
export default {
  props: {
    param: {
      type: Object,
      default() {
        return {
          time: [],
          status: "",
          kwd: ""
        };
      }
    }
  },
  computed: {
    rules(){
      return {
        time: [
          { required: false, message: '请选择起止时间', trigger: 'select' ,type:'array'}
        ],
        status: [
          { required: true, message: '请选择任务状态', trigger: 'select'}
        ],
        kwd: [
          { required: false, message: '空格隔开,不可为空', trigger: 'blur' }
        ]
      }
    },
    statusOptions(){
      return [
        {cname:'成功',ename:'success'},
        {cname:'失败',ename:'fail'},
        {cname:'运行中',ename:'running'},
        {cname:'待调度',ename:'tobescheduled'},
        {cname:'已终止',ename:'killed'},
      ]
    },
    pickerOptions(){
      return pickerOptionsTime ||[]
    },
    disabledSearch() {
      return !(this.param.status || this.param.kwd || (Array.isArray(this.param.time) && this.param.time.length > 0)
      );
    }
  },
  methods: {
    searchFormChange(val) {
      console.log(val,6666);
      if(val==='clear'){
        for(let key in this.param){
          this.param[key]  = key==='time'?[]:''
        }
      }else{
        this.$refs['param'].validate((valid) => {
          if (valid) {
            this.$emit('call-back',val)
          }
        })
      }
    }
  },
};
</script>
原文地址:https://www.cnblogs.com/wheatCatcher/p/11015531.html