【发布时间】:2022-01-12 10:55:45
【问题描述】:
我在这个看似微不足道的问题上苦苦挣扎了好几个小时。
我的页面上有一个antd 日期选择器。
每当我选择一个日期时,它不会给我我选择的日期,而是给我一个凌乱的时刻对象,我无法弄清楚如何阅读。
我想要的是,当我选择“2020-01-18”时,它应该准确地给我用户选择的这个字符串,无论时区如何,最好是 ISO 格式。
这不是一个跨国网站。我只需要一个普通的日期,这样我就可以将它发送到服务器,存储在数据库中,等等。
这是我的一些试验,到目前为止还没有运气:
var fltval = e;
if (isMoment(fltval)) {
var dat = fltval.toDate();
//dat.setUTCHours(0)
fltval = dat.toISOString(); // fltval.toISOString(false)
var a = dat.toUTCString();
//var b = dat.toLocaleString()
}
它会持续移动几个小时,可能是为了补偿一些时区偏差
更新 1:
datestring 在数据方面是正确的。但它不是 ISO,所以我不能正确使用它。我可能会尝试解析它,但我找不到将字符串解析为具有特定格式的日期的方法。
更新 2:
我也尝试手动添加偏差,但由于某种原因偏差为 0
var dat = pickerval.toDate()
var bias = Date.prototype.getTimezoneOffset()// this is 0...
var bias2 = dat.getTimezoneOffset()// and this too is 0
var d2 = new Date(dat.getTime()+bias)
var mystring= dat.toISOString() //still wrong
谢谢!
【问题讨论】:
-
<DatePicker onChange={(date,dateString)=>{ console.log(dateString) }} />是 dateString 你在找什么? -
嗨。谢谢。我添加了一个更新。日期是正确的。但它不可用。