JavaScript将数字转换为日期以与当前日期进行比较

时间:2017-12-16 21:52:34

标签: javascript date datetime

您好我一直在处理我的作业的最后一个问题,我必须检查今天的日期是否大于作为数据库中的数字存储的日期。即今天的日期是16122017 dd mm yy,因为你可以看到它没有空格或者" - "或" /"只是一个数字。我可以得到今天的日期反转它并删除 - 但一个简单的<或者>不适用于比较,因为它们是数字而非java日期格式。

所以我想我必须将 - 添加回日期并将其反转为yy mm dd然后将其与当前日期进行比较。

任何人都可以告诉我如何添加 - 在数字格式中,我可以简单地将它从dd mm yy反转回yy mm dd一旦完成

> c = c.split('-').reverse().join('');

其中c是包含数字日期的var。我假设一旦它有 - 回到它我可以做

  

if(c> LocalDate.now())   或者我是否需要将其分配给新的日期var?

2 个答案:

答案 0 :(得分:2)

有一些很酷的插件包,比如moment.js,可以通过优雅的调用来实现这一点。但是,在本机javascript中,您可以使用handy-dandy setFullYear(y,m,d) function来完成此类操作。

var ds = '16122017'
var myDate = new Date();
myDate.setFullYear(ds.substring(4,8),ds.substring(2,4)-1,ds.substring(0,2));
var today = new Date();
today.setHours (0,0,0,0); /* turn now into today */
if (myDate < today) {
   /* myDate was before today */
}

答案 1 :(得分:0)

除了使用可以为你转换日期的库之外,如果你确定前两个数字是日,然后是月,然后是年,那么我建议使用旧的子字符串方法

var day = str.substring(1, 2);

等等。然后根据计算创建一个新的Date对象并使用它。

如果您的输入没有尾随零,则会增加问题的复杂性,但是您无法克服任何问题。