所以现在我只是想从para类中获取日期以打印到控制台。 jQuery和时刻都工作正常。现在,这什么都不会记录到控制台。我需要查看当前日期是否是带有para类的任何日期之后的x天。在这一点上,我很高兴只将课程日期记录到控制台。
js
const dates = $('.para');
dates.each((i, elem) => {
let parts = $(elem).text().split('/');
let dt = new Date(parts[2] ,parts[1], parts[0]).getTime();
let diff = Math.floor((dt - new Date().getTime()) / (86400 *
1000));
console.log('date:', $(elem).text(), 'days diff vs today:', diff);
});
html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
<script src="moment.js"></script>
<script
src="https://cdnjs.cloudflare.com/
ajax/libs/jquery/3.3.1/jquery.slim.min.js" integrity="sha256-
3edrmyuQ0w65f8gfBsqowzjJe2iM6n0nKciPUp8y+7E=" crossorigin="anonymous">
</script>
<script src="forrealz.js"></script>
</head>
<body>
<p class="para">
11/18/2021
</p>
<p class="para">
09/12/1999
</p>
</body>
</html>
更新:在代码笔(而不是chrome)中进行了尝试,它可以工作,但是数学错误。 “日期:”“ 2018/9/18 ”“ day diff vs今天:” 284 “日期:”“ 1999/09/12 ““与今天的差异天:” -6837
答案 0 :(得分:1)
编辑:
以下内容从您的html中获取日期文本,将其解析为月,日和年,然后将其转换为js日期对象以与当前日期进行比较。日期差从毫秒转换为天以输出。
const dates = $('.para');
dates.each((i, elem) => {
let [m, d, y] = $(elem).text().split('/');
let dt = new Date(y, m - 1, d);
let diff = Math.floor((dt - new Date()) / (86400 * 1000));
console.log('date:', $(elem).text(), 'days diff vs today:', diff);
});
<p class="para">05/23/2021</p>
<p class="para">12/19/1999</p>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
原始(在删除moment.js代码并将html添加到问题的编辑之前):
您可以通过解析html中的日期文本并将其转换为js日期对象来使用香草js获得以天为单位的日期差,以便您可以做一些数学运算将毫秒之间的差值转换为天(在下面的示例)。
下面的示例中的dates
数组是占位符,用于表示您将从html中选择的日期元素的集合(不确定您是否要使用问题table
从问题/注释中进行选择)或带有p
元素)。工作片段来说明:
const dates = ['05/23/2021', '12/19/1999'];
for (let date of dates) {
let [m, d, y] = date.split('/');
let dt = new Date(y, m - 1, d);
let diff = Math.floor((dt - new Date()) / (86400 * 1000));
console.log('date:', date, 'days diff vs today:', diff);
}
答案 1 :(得分:0)
Momentjs diff
是此处的关键功能:
var dayDifference = 10;
var d = new Date();
var momentDate = moment(d);
$('p.para').each(function (index, element) {
var date = moment($(this).text().trim(), 'M/D/YYYY');
if (momentDate.diff(date, 'days') < dayDifference) {
// display alert
}
}
这可以应用于您提供的html示例:
<p class="para"> 23/05/2021 </p>
<p class="para"> 19/12/1999 </p>
答案 2 :(得分:0)
您可以使用$cookieStore.put("language", "pt-PT", {domain: 'requestdomain.com'})
功能。请遵循这些docs for moment difference,以获取更好的理解。
示例JS:
moment.diff