解决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 相关文章推荐
BOM与DOM的区别分析
Oct 26 Javascript
js循环改变div颜色具体方法
Jun 25 Javascript
Javascript中判断变量是数组还是对象(array还是object)
Aug 14 Javascript
javascript原型链继承用法实例分析
Jan 28 Javascript
JavaScript中的函数模式详解
Feb 11 Javascript
pace.js页面加载进度条插件
Sep 29 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
SWFUpload多文件上传及文件个数限制的方法
May 31 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
详解vue-cli 3.0 build包太大导致首屏过长的解决方案
Nov 10 Javascript
HTML+VUE分页实现炫酷物联网大屏功能
May 27 Vue.js
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
PHP与javascript的两种交互方式
2006/10/09 PHP
main.php
2006/12/09 PHP
PHP中cookies使用指南
2007/03/16 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JavaScript中判断两个字符串是否相等的方法
2015/07/07 Javascript
总结Node.js中的一些错误类型
2016/08/15 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
使用webpack和rollup打包组件库的方法
2021/02/25 Javascript
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
对Python 获取类的成员变量及临时变量的方法详解
2019/01/22 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
HEMA法国:荷兰原创设计
2019/02/21 全球购物
Coccinelle官网:意大利的著名皮具品牌
2019/05/15 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
新媒传信软件测试面试题
2013/02/24 面试题
EJB的几种类型
2012/08/15 面试题
出国留学计划书
2014/04/27 职场文书
工作一年自我鉴定
2019/06/20 职场文书
Python FuzzyWuzzy实现模糊匹配
2022/04/28 Python