[英]Moment.js deprecation warning when comparing two dates
我沒有看到與我的用例匹配的SO線程。 我正在嘗試比較兩個日期,以查看它們是否匹配。 如果沒有,則顯示錯誤信息。 兩個日期的日期格式均為'MM/DD/YYYY'
格式,唯一的例外是有時它們可能為'MM/DD/YYYY'
而其他時候為'M/D/YYYY'
。
我能夠使其正常工作,但始終會出現不贊成使用的錯誤。 我嘗試使用moment.ISO_8601
參數,但仍繼續獲取不建議使用的錯誤。
if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date,
moment.ISO_8601 ) )
{
console.log("Both dates must match!");
}
else {
console.log("Dates match!");
}
不建議使用的錯誤如下:
moment.js:1棄用警告:提供的值不是公認的RFC2822或ISO格式。 此刻的構建工作歸結於js Date(),它在所有瀏覽器和版本之間都不可靠。 不建議使用非RFC2822 / ISO日期格式,並將在即將發布的主要版本中將其刪除。
有沒有解決的辦法?
無論是'MM/DD/YYYY'
也不'M/D/YYYY'
是由公認的ISO 8601兼容的格式moment.ISO_8601
見moment(String)
文檔,看看有什么是ISO 8601種格式的momentjs認可。 您必須指定'MM/DD/YYYY'
(或'M/D/YYYY'
)格式,而不是使用moment.ISO_8601
。
您可以使用moment(String, String[])
使用'MM/DD/YYYY'
和'M/D/YYYY'
。 如果您使用嚴格解析,則這是必需的。 請注意:
從版本2.3.0開始, Moment使用一些簡單的試探法來確定要使用的格式。 為了:
例如,使用['MM/DD/YYYY', 'MM/DD/YYYY']
,諸如01/10/2017
類的模糊輸入將始終被解釋為一月10日。
這是一個沒有棄用警告的示例:
var start_date = '11/25/2017'; var user_start_date = '27/12/2017'; if( !moment( start_date, ['MM/DD/YYYY', 'M/D/YYYY'] ).isSame( moment(user_start_date, ['MM/DD/YYYY', 'M/D/YYYY'] )) ) { console.log("Both dates must match!"); } else{ console.log("Dates match!"); }
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>
我實際上沒有看到這個問題。
http://jsfiddle.net/dbkidd/n9s082bj/
你能在小提琴中重現嗎?
var start_date = moment().format('MMM DD h:mm A');
var user_start_date = moment().format('MMM DD h:mm A');
if( !moment( start_date, moment.ISO_8601 ).isSame( user_start_date,
moment.ISO_8601 ) )
{
console.log("Both dates must match!");
}
else{
console.log("Dates match!");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.