我正在尝试将UTC时间转换为本地时间。只要年份为4个字符,该代码就可以正常工作;但是,如果更大,它会抛出:
RangeError:date.toISOString()处的无效时间值
我尝试了不同的方法,发现我的日期对象抛出此异常,因为当它尝试转换诸如“ 22222-01-23T12:30:26.000Z”之类的日期时,它包含“无效日期” 转换为ISOString。
<Form.Group as={Col}>
<Form.Label>Future Date</Form.Label>
<Form.Control id="futureDate" type="datetime-local" name="futureDate" placeholder="Future Date" value={UtcToDiffTime(futureDate) || ""} onChange={this.handleInputChange}/>
</Form.Group>
static UtcToDiffTime(utc){
let date = new Date(utc);
date.setMinutes(date.getMinutes() - date.getTimezoneOffset());
return date.toISOString().slice(0, date.toISOString().lastIndexOf(":")));
} else {
return null;
}
}
有没有一种方法可以转换日期而不管年份字符或使日期包含有效的日期字符串?
我正在尝试将“ 22222-01-23T12:30:26.000Z” 截断为“ 22222-01-23T12:30” ,而无需使用moment.js。