解决antd datepicker 获取时间默认少8个小时的问题


Posted in Javascript onOctober 29, 2020

1、扩展日期格式化方法

Date.prototype.format = function (fmt) {
 let o = {
  "M+": this.getMonth() + 1,         //月份
  "d+": this.getDate(),          //日
  "h+": this.getHours(),          //小时
  "m+": this.getMinutes(),         //分
  "s+": this.getSeconds(),         //秒
  "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  "S": this.getMilliseconds()       //毫秒
 };
 if (/(y+)/.test(fmt)) {
  fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
 }
 for (let k in o) {
  if (new RegExp("(" + k + ")").test(fmt)) {
   fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  }
 }
 return fmt;
};

2、对选中日期的时间进行格式化处理,最终得到的时间就是当前时间

new Date(value).format(“yyyy-MM-dd hh:mm:ss”)

补充知识:antd datepicker设置开始时间和期限计算出结束时间并且去除周六日

datepicker 需要使用moment格式的时间作为value,但是在操作 此value时,包括moment.add()等方法都会直接改变datepicker的值,即使没有重新赋值。此时需要配合moment-immutable-methods使用

import { momentImmutableMethods } from 'moment-immutable-methods'
momentImmutableMethods(moment)

getFinishTime=(value)=>{
    const {getFieldValue} = this.props.form
    let i = 0
    if(typeof(value)==="number"){
      let incomingTime = getFieldValue("incomingTime")
      while(i<value){
        if(incomingTime.addImmu(1,'d').weekday()!==5&&incomingTime.addImmu(1,'d').weekday()!==6){
          i++
          incomingTime = incomingTime.addImmu(1,'d')
        }else{
          incomingTime = incomingTime.addImmu(1,'d')
        }
      }
      this.setState({
        finishTime:value===16?moment():incomingTime,
        disabledFinishTime:value===16?false:true
      })
    }else if(typeof(value)==="object"){
      let deadTime = getFieldValue("deadTime")
      while(i<deadTime){
        if(value.addImmu(1,'d').weekday()!==5&&value.addImmu(1,'d').weekday()!==6){
          i++
          value = value.addImmu(1,'d')
        }else{
          value = value.addImmu(1,'d')
        }
      }
      this.setState({
        finishTime:deadTime===16?moment():value,
        disabledFinishTime:deadTime===16?false:true
      })
    }
 }

以上这篇解决antd datepicker 获取时间默认少8个小时的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript的变量作用域深入理解
Oct 25 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
Apr 08 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
Sep 06 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
JS中检测数据类型的几种方式及优缺点小结
Dec 12 Javascript
基于cookie实现zTree树刷新后展开状态不变
Feb 28 Javascript
ES6新特性之解构、参数、模块和记号用法示例
Apr 01 Javascript
vue中SPA单页面应用程序详解
Nov 07 Javascript
使用Vue-Router 2实现路由功能实例详解
Nov 14 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
May 27 jQuery
小程序实现按下录音松开识别语音
Nov 22 Javascript
Antd中单个DatePicker限定时间输入范围操作
Oct 29 #Javascript
微信小程序实现可长按移动控件
Nov 01 #Javascript
Vue时间轴 vue-light-timeline的用法说明
Oct 29 #Javascript
antd日期选择器禁止选择当天之前的时间操作
Oct 29 #Javascript
vue制作toast组件npm包示例代码
Oct 29 #Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
Oct 29 #Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
Oct 29 #Javascript
You might like
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
PHP缓冲区用法总结
2016/02/14 PHP
浅谈php处理后端&amp;接口访问超时的解决方法
2016/10/29 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP7数组的底层实现示例
2019/08/25 PHP
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
基于jQuery实现的无刷新表格分页实例
2016/02/17 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
ng2学习笔记之bootstrap中的component使用教程
2017/03/09 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
基于JavaScript实现多级菜单效果
2017/07/25 Javascript
jQuery实现键盘回车搜索功能
2017/07/25 jQuery
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
小程序的上传文件接口的注意要点解析
2019/09/17 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python调用百度语音识别实现大音频文件语音识别功能
2018/08/30 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python 将大文件切分为多个小文件的实例
2019/01/14 Python
pyinstaller还原python代码过程图解
2020/01/08 Python
Python基于字典实现switch case函数调用
2020/07/22 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
python 模拟登陆163邮箱
2020/12/15 Python
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
应聘教师自荐信
2013/10/12 职场文书
会计专业自荐信范文
2015/03/05 职场文书
运动会宣传稿100字
2015/07/23 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android
mysql全面解析json/数组
2022/07/07 MySQL