• 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>
  • 相关阅读:
    sql 导出大数据量 到excel
    完美输出textarea样式(换行,空格)
    Caliburn.Micro tips
    客户端向服务器提交数据,表单形式
    sevlet生命周期
    Intent(简单介绍)
    return常用用法
    Activity的生命周期
    android.util.AndroidRuntimeException: requestFeature() must be called before adding content
    ListView点击事件不响应。
  • 原文地址:https://www.cnblogs.com/wheatCatcher/p/11015531.html
Copyright © 2020-2023  润新知