日期时间差异以分钟为单位

时间:2017-09-15 11:38:11

标签: javascript datetime

我在表单中有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

3 个答案:

答案 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

您可以尝试以下代码来获取以分钟为单位的日期差异。

&#13;
&#13;
 
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;
&#13;
&#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);