JavaScript console.log 的日期选择器和计算两个日期之间的差异不起作用
JavaScript console.log of datepicker and counting difference between two dates doesn't work
我正在努力获取两个日期的 console.log 以及这两天之间的天数。
这是 JavaScript 部分:
var startDate;
var endDate;
$(document).ready(function() {
var j = jQuery.noConflict();
startDate = j("#startTime").datepicker({
dateFormat: 'dd.mm.yy',
onSelect: function() {
console.log("Test1");
}
});
endDate = j("#endTime").datepicker({
dateFormat: 'dd.mm.yy',
onSelect: function() {
console.log("Test2");
}
});
});
function createSpots(){
var siteUrl = '/sites/MySiteCollection';
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDate - endDate) / oneDay));
console.log("diffDays: " + diffDays);
console.log("startDate: " + startDate);
console.log("endDate: " + endDate.dateFormat);
console.log("Spots created!");
}
这是HTML:
<script src="/tools/Scripts/apps/Win10Rollout/AutomatedSpots.js" type="text/javascript"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"/>
<p>Startdatum:<input id="startTime" type="text" class="hasDatepicker"/></p>
<p>Enddatum:<input id="endTime" type="text" class="hasDatepicker"/></p>
<p>Spots:
<textarea id="text" name="text" cols="35" rows="4"></textarea> </p>
<p>Anzahl Einträge je Spot:<input type="number" id="spot"/></p>
<button onclick="createSpots()" type="button" id="button">Erstellen</button>
控制台显示 startDate: [object Object]
。
当我使用 startDate.getDate()
时,它显示 Uncaught TypeError: startDate.getDate is not a function
。使用 startDate.dateFormat
也不起作用。
计算我使用的那些日期之间的差异
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDate - endDate) / oneDay));
但是这里说的是diffDays: NaN
提前致谢!
在 javascript 中,为了能够对对象使用 console.log()
并从该对象中获取详细信息,您可以避免将对象连接到字符串,以便可以使用
console.log("startDate: ", startDate);
而不是使用 console.log("startDate: " + startDate);
或者你可以使用JSON.stringify
对对象进行字符串化,这样就变成了:
console.log("startDate: " + JSON.stringify(startDate));
但是 startDate
变量在你的情况下,这是一个 JQuery 对象所以如果你要记录它,它会记录 html 对象所以在你的情况下记录startDate
对象中的值,您可以使用以下内容:
console.log("startDate: " , startDate[0].value);
关于日期差异的计算,您可以执行以下操作:
function createSpots(){
var siteUrl = '/sites/MySiteCollection';
const startDateValue = new Date(startDate[0].value);
const endDateValue = new Date(endDate[0].value);
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDateValue - endDateValue) / oneDay));
console.log("diffDays: " + diffDays);
console.log("startDate: " , startDateValue);
console.log("endDate: " + endDateValue);
console.log("Spots created!");
}
简单地说,您需要获取用户输入的值,然后使用 new Date()
将这些值转换为日期对象,然后您就可以正常使用您的公式了。
我正在努力获取两个日期的 console.log 以及这两天之间的天数。
这是 JavaScript 部分:
var startDate;
var endDate;
$(document).ready(function() {
var j = jQuery.noConflict();
startDate = j("#startTime").datepicker({
dateFormat: 'dd.mm.yy',
onSelect: function() {
console.log("Test1");
}
});
endDate = j("#endTime").datepicker({
dateFormat: 'dd.mm.yy',
onSelect: function() {
console.log("Test2");
}
});
});
function createSpots(){
var siteUrl = '/sites/MySiteCollection';
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDate - endDate) / oneDay));
console.log("diffDays: " + diffDays);
console.log("startDate: " + startDate);
console.log("endDate: " + endDate.dateFormat);
console.log("Spots created!");
}
这是HTML:
<script src="/tools/Scripts/apps/Win10Rollout/AutomatedSpots.js" type="text/javascript"></script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"/>
<p>Startdatum:<input id="startTime" type="text" class="hasDatepicker"/></p>
<p>Enddatum:<input id="endTime" type="text" class="hasDatepicker"/></p>
<p>Spots:
<textarea id="text" name="text" cols="35" rows="4"></textarea> </p>
<p>Anzahl Einträge je Spot:<input type="number" id="spot"/></p>
<button onclick="createSpots()" type="button" id="button">Erstellen</button>
控制台显示 startDate: [object Object]
。
当我使用 startDate.getDate()
时,它显示 Uncaught TypeError: startDate.getDate is not a function
。使用 startDate.dateFormat
也不起作用。
计算我使用的那些日期之间的差异
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDate - endDate) / oneDay));
但是这里说的是diffDays: NaN
提前致谢!
在 javascript 中,为了能够对对象使用 console.log()
并从该对象中获取详细信息,您可以避免将对象连接到字符串,以便可以使用
console.log("startDate: ", startDate);
而不是使用 console.log("startDate: " + startDate);
或者你可以使用JSON.stringify
对对象进行字符串化,这样就变成了:
console.log("startDate: " + JSON.stringify(startDate));
但是 startDate
变量在你的情况下,这是一个 JQuery 对象所以如果你要记录它,它会记录 html 对象所以在你的情况下记录startDate
对象中的值,您可以使用以下内容:
console.log("startDate: " , startDate[0].value);
关于日期差异的计算,您可以执行以下操作:
function createSpots(){
var siteUrl = '/sites/MySiteCollection';
const startDateValue = new Date(startDate[0].value);
const endDateValue = new Date(endDate[0].value);
const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
const diffDays = Math.round(Math.abs((startDateValue - endDateValue) / oneDay));
console.log("diffDays: " + diffDays);
console.log("startDate: " , startDateValue);
console.log("endDate: " + endDateValue);
console.log("Spots created!");
}
简单地说,您需要获取用户输入的值,然后使用 new Date()
将这些值转换为日期对象,然后您就可以正常使用您的公式了。