我有这个提示:
<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); })
})
答案 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();