我正在使用Momentjs
评估react-datetimepicker
中的所选日期。但它评估的时间少于所选日期。以下是我用来评估所选日期的代码段。
var selectedDateArr = ['2016','02','04']
var yr = parseInt(selectedDateArr[0]), mnth = parseInt(selectedDateArr[1] - 1), day = parseInt(selectedDateArr[2]);
var changedDt = moment([yr,mnth,day]);
console.log('Changed Date >>> ',changedDt);
它在firefox中将以下对象作为控制台结果提供。
{ _isAMomentObject: true, _i: Date 2016-01-03T18:30:00.000Z, _isUTC: false, _pf: Object, _locale: Object, _d: Date 2016-01-03T18:30:00.000Z }
我曾尝试将日期转换为UTC,但仍然没有运气。
注意:在chrome中,它会显示正确的评估,但在将其作为minDate
提供时会中断;再评估一天比选定的少。
答案 0 :(得分:2)
根据你问题中显示的数值,我猜你在印度,这意味着你当地的时区(IST)是GMT + 0530(比GMT提前五个半小时)。当你give Moment an array时,你给它本地时间值,你没有提供的任何值默认为0 - 在你的情况下,因为你没有提供任何时间值那是午夜。 1月4日格林威治标准时间+ 0530午夜是1月3日18:30在UTC。
如果您希望将值视为UTC,请使用moment.utc(...)
:
var changedDt = moment.utc([hr,mnth,day]);
答案 1 :(得分:0)
尝试使用 var changedDt = moment.tz([年,月,日],时区)。
例如我在印度,所以我的时区将是“亚洲/加尔各答”。
答案 2 :(得分:0)
moment.unix(timestamp).utc().format('MM/DD/YYYY')
moment.utc(date).format('MM/DD/YYYY')
如果我们通过,它将对我有用。