将伪日期字符串转换为javascript日期对象

Convert pseudo date string into javascript date object

本文关键字:日期 javascript 对象 字符串 转换      更新时间:2023-09-26

我从服务器收到以下时间:

"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,我想获取从服务器获得的原始时间字符串,并根据更改对其进行相应更改。

有"合适"的方法吗?我所能想到的就是存储原始时间,然后在特定索引处用str.replace方法覆盖它。

在这种情况下,所需的结果是:"2010-10-30T23:00:00.000Z"

当涉及到日期时,通常不应该手动操作字符串。

首先,您需要将插入字符串转换为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()