解决antd datepicker 获取时间默认少8个小时的问题
1、扩展日期格式化方法
Date.prototype.format=function(fmt){
leto={
"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(letkino){
if(newRegExp("("+k+")").test(fmt)){
fmt=fmt.replace(RegExp.$1,(RegExp.$1.length===1)?(o[k]):(("00"+o[k]).substr((""+o[k]).length)));
}
}
returnfmt;
};
2、对选中日期的时间进行格式化处理,最终得到的时间就是当前时间
newDate(value).format(“yyyy-MM-ddhh:mm:ss”)
补充知识:antddatepicker设置开始时间和期限计算出结束时间并且去除周六日
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
leti=0
if(typeof(value)==="number"){
letincomingTime=getFieldValue("incomingTime")
while(i
以上这篇解决antddatepicker获取时间默认少8个小时的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。