如何将html表格单元格中的日期转换为iso 8601格式?

时间:2019-05-13 19:14:44

标签: javascript html iso8601

我有这个提示:

<td>Jul 18 2019 12:00AM</td>

,我需要使用JavaScript将其转换为ISO 8601格式。 Vanilla或使用jQuery都很好,只是当我尝试解析它时,我一直得到“未定义”,但由于html标签,我认为它遇到了麻烦。任何帮助将不胜感激,谢谢。

 $(function () {
  $("#_ctl0_phMainContent_dgrdClasses3 tbody tr td:nth-child(7)").each(function (index, dateElem) {
    var $dateElem = $(dateElem);
    var formatted = moment($dateElem.text(), 'MMM DD YYYY h:mm:a').format('MMM DD YYYY h:mm:a').toISOString(); 
    $dateElem.text(formatted);   })
 })

2 个答案:

答案 0 :(得分:1)

您需要添加moment以将其解析为自定义日期字符串格式,然后将其转换为iso格式 有关isoString

的更多详细信息
moment('Jul 18 2019 12:00AM','MMM DD YYYY h:mm:a').toISOString() 

答案 1 :(得分:0)

我不会提供完整的解决方案,因为要自己弄清楚逻辑并不难。

1)给定字符串'Jul 18 2019 12:00 AM',用空格分开。

const dateStringParts = 'Jul 18 2019 12:00AM'.split(' ');
//You should be getting an array of strings: ['Jul', '18', '2019', '12:00AM']

2)使用here上提供的答案将12:00 AM时间转换为24小时格式。

dateStringParts[3] = convertTime12to24(dateStringParts[3]);

3)将它们重新连接成字符串。

const newDateString = dateStringParts.join(' ');

4)转换为ISO字符串。

const isoDate = new Date(newDateString).toISOString();