解决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实例教程(19) 使用HoTMetal(6)
Dec 23 Javascript
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
javascript图片滑动效果实现
Jan 28 Javascript
jQuery验证插件validate使用详解
May 11 Javascript
利用Javascript实现简单的转盘抽奖
Feb 13 Javascript
vue过渡和animate.css结合使用详解
Jun 14 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 Javascript
微信小程序swiper实现滑动放大缩小效果
Nov 15 Javascript
详解Vue底部导航栏组件
May 02 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 Javascript
Express 配置HTML页面访问的实现
Nov 01 Javascript
React实现todolist功能
Dec 28 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
初级的用php写的采集程序
2007/03/16 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
php实现的漂亮分页方法
2014/04/17 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
Django 中 cookie的使用
2017/08/17 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
laravel请求参数校验方法
2019/10/10 PHP
javascript 函数式编程
2007/08/16 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JS+CSS实现精美的二级导航效果代码
2015/09/17 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
基于JS脚本语言的基础语法详解
2017/07/22 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue实现匀速轮播效果
2020/06/29 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
让python json encode datetime类型
2010/12/28 Python
python文本数据相似度的度量
2018/03/12 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python web框架中实现原生分页
2019/09/08 Python
用Python写一个自动木马程序
2019/09/17 Python
会计专业毕业生自荐书
2014/06/25 职场文书
店面出租协议书范本
2014/11/28 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
python 自动化偷懒的四个实用操作
2021/04/11 Python
浅谈redis的过期时间设置和过期删除机制
2022/03/18 MySQL