gpt4 book ai didi

javascript - moment().isValid 当输入为整数时返回 true

转载 作者:行者123 更新时间:2023-12-05 04:44:30 31 4
gpt4 key购买 nike

代码:

  let modifiedValue = attribute_value;
let isISOFormat = moment(new Date(attribute_value), moment.ISO_8601, true).isValid();
if (isISOFormat) {
modifiedValue = formatDateShortCustom(moment(attribute_value).toDate());
}
return modifiedValue;
};

在上面的代码中,属性值可以有

  1. 2021-09-29T18:30:00.000Z
  2. 080921

我想确保当 attribute_value 处于 (1) 格式时代码
modifiedValue = formatDateShortCustom(moment(attribute_value).toDate());应该执行。

但是,这个数字字符串也导致 isISOFormattrue 因此导航 formatDateShortCustom 方法,这是我不想要的?

我做错了什么吗?

最佳答案

我建议将其包装在函数 isISOFormat() 中,并使用它来确定您的输入是否为 ISO 8601 日期字符串。

我还建议将输入直接传递给 moment() 构造函数,而不是先创建一个日期:

let attribute_values = ['2021-09-28T11:45:00Z', new Date().toISOString(), 20, null, '28/09/2021', 'is this a date?'];

function testIsISOFormat() {
for(let attribute_value of attribute_values) {
console.log(`isISOFormat(${attribute_value}):`, isISOFormat(attribute_value));
}
}

function isISOFormat(input) {
return moment(input, moment.ISO_8601, true).isValid();
}

console.log('Testing isISOFormat:');
testIsISOFormat()
.as-console-wrapper { max-height: 100% !important; top: 0; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

关于javascript - moment().isValid 当输入为整数时返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69360768/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com