new Date(date).getTime(); 以d / m / y格式读取时间

编辑:我创建了一个我想要做的例子: http : //plnkr.co/edit/HvItQP2uDooaMgK7GRQe?p = preview

它有几个问题。

  1. 它在FF(在MAC上)不起作用。 没有我能看到的错误。

  2. 在选择11-04-17到17-04-17之后的chrome中它仍然显示30/03/2017的行

我非常感谢大家的帮助,请记住,我上周刚开始使用JS。 我可以阅读代码并且(可能)理解逻辑,但我没有达到可以清楚地看到如何实现它的水平。


我使用数据表按日期排序一些基本数据。 这里有一个很好的例子:我复制了。 示例日期采用mm / dd / yyyy格式。

我需要它以dd / mm / yyyy运行。 当我将示例中的日期切换为我需要的格式时,它不再有效。

我是JS的新手,所以我想这就是魔术的一部分:

minDateFilter = new Date(date).getTime(); 

minDateFilter抓取输入中的数据,并且.getTime()将它从1970年转换为秒。如果我可以通过.getTime(dateFormat:“dd-mm-yyyy”)开始,我可以开始搜索它但是没有运气然而。

如果有人能帮到我,我会很感激。 我总是可以使用隐藏的字段而不是。

谢谢

我会String#拆分字符串,然后将其解析为Date 。 根据UTC,您将以毫秒为单位获得不同的值(除非您恰好是GMT时区)。 在您刚刚将其用于排序参考的情况下,只要对所有值使用相同的类型,使用哪个值都无关紧要。

 function getTime(value, utc) { // with dd/mm/yyyy then part[0] will be dd, // part[1] will be mm and part[2] will be yyyy var parts = value.split('/'); // Date requires a zero referenced month parts[1] -= 1; if (utc) { return Date.UTC(parts[2], parts[1], parts[0]); } return new Date(parts[2], parts[1], parts[0]).getTime(); } var value = '03/03/2016'; console.log(getTime(value)); console.log(getTime(value, true)); 

getTime以秒为单位返回unix时间戳,而不是像17/04/2017日那样的日期。 您将不得不使用toLocalDateString

 var date = new Date(); console.log(date.toLocaleDateString("en-GB")); 
 d = new Date(date); f=d=>(d+"").length==2?""+d:"0"+d; minDateFilter= f(d.getDate())+"-"+f(d.getMonth()+1)+"-"+f(d.getYear()%100); 

http://jsbin.com/sosurohaje/edit?console

说明:

d.getDate返回该月的某一天,

d.getMonth从0-11返回月份(这就是为什么+1)

.getYear从1900年开始返回年份,这就是我使用modulo 100格式化它的原因:

 2014 => 114 %100 => 14 1914 => 14 %100 => 14 2000 => 100 % 100 => 0 

并且感谢oen44 ive包含了一个函数f ,如果它不是一个两位数字,它将添加一个前导0 …

如果您有日期对象并且您知道输出格式,则可以使用日期方法构造输出字符串,例如:

 var date = new Date("05/26/1984"); var formatDate = curdate.getDate() + "/" + (curdate.getMonth() + 1) + "/" + curdate.getFullYear(); 

如果问题是输入,您可以通过拆分获得日,月和年,并使用“新日期(年,月,日,小时,分钟,秒,毫秒)创建日期”:

 var input = "26/05/1984"; var aux = input.split("/"); var day =aux[0]; var month = aux[1]; var year = aux[2]; var date = new Date(year,month - 1,day,0,0,0,0);