gpt4 book ai didi

javascript - 日期比较脚本适用于除 Edge 之外的所有浏览器

转载 作者:行者123 更新时间:2023-11-28 04:16:26 25 4
gpt4 key购买 nike

var myDate = new Date()
myDate.setDate(myDate.getDate() - 1);
$(".container").children("div").each(function(){
var thisdate=$(this).attr("data-date");
var dateOfGame = new Date(thisdate);
if(thisdate!="" && dateOfGame <= myDate){
$(this).remove();}});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div data-date="8/2/17"></div>
<div data-date="8/29/17"></div>
</div>

该脚本会在事件发生一天后从我的页面中删除过时的元素。然而,在 Edge 上,它就像每个元素都已过时一样,并将它们全部从 DOM 中删除。

最佳答案

我检查了您的代码,问题是,当您使用 Chrome 时,8/29/17 被解释为 8/29/2017 而在 Edge 中,它被解释为 8/29/1917

要验证这一点

运行以下代码并检查 Edge 和 Chrome 中的控制台。

 var myDate = new Date()
myDate.setDate(myDate.getDate() - 1);
$(".container").children("div").each(function(){
var thisdate=$(this).attr("data-date");
var dateOfGame = new Date(thisdate);
console.log(myDate, dateOfGame);
if(thisdate!="" && dateOfGame <= myDate){
$(this).remove();}});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div data-date="8/2/17"></div>
<div data-date="8/29/17"></div>
</div>

解决这个问题

您必须使用2017才能使边缘支持此

var myDate = new Date()
myDate.setDate(myDate.getDate() - 1);
$(".container").children("div").each(function(){
var thisdate=$(this).attr("data-date");
var dateOfGame = new Date(thisdate);
console.log(dateOfGame <= myDate , myDate, dateOfGame);
if(thisdate!="" && dateOfGame <= myDate){
$(this).remove();}});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
<div data-date="8/2/2017"></div>
<div data-date="8/29/2017"></div>
</div>

关于javascript - 日期比较脚本适用于除 Edge 之外的所有浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45809536/

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