奇怪的日期解析问题

Strange date parsing issue

本文关键字:问题 日期      更新时间:2023-09-26

我正在将来自数据库的一些日期以字符串格式加载到HTML表中。该字符串看起来像31-AUG-13我使用以下代码将此字符串解析为日期对象:

var paymentDate = $(this).find('td.paymentDate').text();
var test = $.datepicker.parseDate('d-M-y', paymentDate);

到目前为止一切都很好,我得到了这个日期对象:Date {Sat Aug 31 2013 00:00:00 GMT+0300 (FLE Standard Time)} 但是一旦一年大于 2023 年。在我的情况下,31-JAN-24等等,它正在转向 1924 年而不是 2024 年,所以我得到了这些日期对象:

Date {Thu Jan 31 1924 00:00:00 GMT+0200 (FLE Daylight Time)}
Date {Fri Feb 29 1924 00:00:00 GMT+0200 (FLE Daylight Time)}
Date {Mon Mar 31 1924 00:00:00 GMT+0300 (FLE Standard Time)}
Date {Wed Apr 30 1924 00:00:00 GMT+0300 (FLE Standard Time)}

等等。我的问题是关于这个奇怪的问题。有没有办法声明年份范围以及为什么在年份大于 2023 年的情况下回到 1900 年?

这教一堂课总是使用完整格式的年份,就像 y2k 问题一样。将日期从数据库转换为yyyy格式,然后使用它。