我在表单中有2个require(readr)
myData <- read_csv("foo.txt.gz")
字段,我希望这两个字段之间的差异很小。
我尝试将DateTime
解析为DateTime
,但它无效:
Date
如果我<script>
$(document).ready(function () {
$("#mybundle_evenement_button").click(function () {
var field1 = $("#mybundle_evenement_debut").val();
var field2 = $("#mybundle_evenement_fin").val();
var date1 = new Date(field1);
var date2 = new Date(field2);
alert(date1);
});
});
</script>
为date1,则会显示alert()
。
但是如果我Invalid Date
field1,它会显示alert()
(格式为:天/月/年小时:分钟)。
由于格式原因,15/09/2017 13:32
是否可能无法正常工作?
我知道如果我成功将DateTime解析为new Date(field1)
,那么在几分钟内就会很容易产生差异,但我不明白为什么会说Date
。
答案 0 :(得分:1)
dd/MM/yyyy HH:mm
不是Date.parse()
您必须将日期格式设置为有效Date Time String Format,例如:
var field1 = $("#mybundle_evenement_debut").val();
var ISODate1 = field1.replace(/(\d+)\/(\d+)\/(\d+)/, "$3-$2-$1")
var date1 = new Date(ISODate1);
alert(date1) // => Fri Sep 15 2017 13:32:00 ...
答案 1 :(得分:0)
它取决于您的浏览器。我建议使用标准格式'2013/12/09 10:00'
。
好的!来到了这一点。您需要手动设置我最新答案中关于同一类问题的日期。请看一下这个链接: Stange javascript Date behaviour on particular dates
您可以尝试以下代码来获取以分钟为单位的日期差异。
var startTime = new Date('2013/12/09 10:00');
var endTime = new Date('2014/12/09 10:00');
var difference = endTime.getTime() - startTime.getTime();
var result = Math.round(difference / 60000);
alert(result);
&#13;
答案 2 :(得分:0)
问题在于您从字段中获取日期的格式。 new Date()
不接受此格式。我认为最好是自己解析string
。如果格式始终相同,请使用new Date(year, month, day, hours, minutes, seconds, milliseconds)
。
var day = field.splice(0,2); field.splice(0,1);
var month = field.splice(0,2); field.splice(0,1);
var year = field.splice(0,2); field.splice(0,1);
var hour = field.splice(0,2); field.splice(0,1);
var minute = field.splice(0,2);