1

我正在使用 angular-ui-datepicker 弹出窗口,我试图将保存的日期值作为仅包含日期的字符串保存。M/d/yyyy

日期选择后的输入是正确5/11/2015的,但存储的值是Date

Mon May 11 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 12:00AM

有没有办法始终将值存储为日期string而不是Date对象?

<p class="input-group">
    <input type="text" datepicker-popup="M/d/yyyy" ng-model="event.date"
        is-open="datePickers['date']" class="form-control" />
    <span class="input-group-btn">
        <button type="button" class="btn btn-default"
            ng-click="toggleDatepicker('date', $event)">
            <i class="fa fa-calendar"></i>
        </button>
    </span>
</p>

在上述情况下,我需要数据始终是日期字符串,例如:

{
   date: '5/11/2015'
}

并不是

{
   date: `Mon May 11 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 12:00AM`
}
4

1 回答 1

0

我不认为有一个简单的(标准)JavaScript 日期格式化函数,但我想你总是可以自己构建 M/d/yyyy 字符串,例如:

getDate() // Returns the date
getMonth() // Returns the month
getFullYear() // Returns the year

更多在这里

在各种项目中,我自己也一直在搞砸这个问题,您可能需要考虑Date.toISOString。我发现 Angular 会自动将 JSON 中的 ISO 8601 字符串反序列化为实际的 Date 对象以供进一步使用,反之亦然,它还会透明地将日期对象序列化为这种格式,因此您不必自己担心这一点。

于 2015-05-11T19:25:57.240 回答