我从服务器收到以下时间:
"2010-11-30T23:00:00.000Z"
此时间在三个单独的输入字段中输出:
<input name="day" type="number" value={new Date(myTimeString).getDay()} />
<input name="month" type="number" value={new Date(myTimeString).getMonth()} />
<input name="year" type="number" value={new Date(myTimeString).getYear()} />
这导致三个输入彼此相邻显示,其中包含一些值:1 - 12 - 2010
现在,当用户更改某个值时,可以说月份从12
更改为10
我想获取从服务器获取的原始时间字符串,并相应地将其更改为变化
是否有适当的&#34;这样做的方法?
我能想到的只是存储原始时间,然后使用str.replace
方法在特定索引处覆盖它。
在这种情况下,期望的结果是:"2010-10-30T23:00:00.000Z"
答案 0 :(得分:1)
在日期方面,你通常不应该进行手动字符串操作。
首先,您需要将incomming字符串转换为Date对象。
var date = new Date('2010-11-30T23:00:00.000Z');
然后使用相应的Date.prototype.set*
方法绑定相应字段的更改事件。例如setDate
document
.querySelector('input[name=day]')
.addEventListener('change', function setDay() {
var day = parseInt(this.value, 10);
date.setDate(day);
})
然后在需要时使用toISOString
方法将日期转换为字符串。
var dateStr = date.toISOString()