JavaScript将数字转换为日期以与当前日期进行比较
嗨,我一直在做作业的最后一道题,我必须检查今天的日期是否大于数据库中存储为数字的日期。ie今天的日期是16122017 dd mm yy,因为你可以看到它没有空格,也没有“-”或“/”只是一个数字。我可以让todays date将其反转并删除-但是一个简单的<或>不能用于比较,因为它们是数字而不是java日期格式 所以我想我必须在日期中加上-并将其反转,使其在yy-mm-dd,然后将其与当前日期进行比较 有谁能告诉我如何添加-到数字格式中,我可以简单地将它从dd-mm-yy反转回yy-mm-yy,一旦完成JavaScript将数字转换为日期以与当前日期进行比较,javascript,date,datetime,Javascript,Date,Datetime,嗨,我一直在做作业的最后一道题,我必须检查今天的日期是否大于数据库中存储为数字的日期。ie今天的日期是16122017 dd mm yy,因为你可以看到它没有空格,也没有“-”或“/”只是一个数字。我可以让todays date将其反转并删除-但是一个简单的不能用于比较,因为它们是数字而不是java日期格式 所以我想我必须在日期中加上-并将其反转,使其在yy-mm-dd,然后将其与当前日期进行比较 有谁能告诉我如何添加-到数字格式中,我可以简单地将它从dd-mm-yy反转回yy-mm-yy,一旦
> c = c.split('-').reverse().join('');
其中,c是包含数字日期的变量。我想一旦它回来了,我就可以做了
如果(c>LocalDate.now())
或者我需要将其分配给新的日期变量吗
除了使用可以为您转换日期的库之外,如果您确定前两个数字是天,然后是月,然后是年,那么我建议使用好的旧子字符串方法
var day = str.substring(1, 2);
等等。然后根据计算结果创建一个新的日期对象并使用它
如果您的输入没有尾随的零,这会增加问题的复杂性,但没有什么是您无法克服的。除了使用一个可以为您转换日期的库之外,如果您确定前两个数字是日、月、年,那么我建议使用传统的子字符串方法
var day = str.substring(1, 2);
等等。然后根据计算结果创建一个新的日期对象并使用它
如果您的输入没有尾随的零,这会增加问题的复杂性,但没有什么是您无法克服的。有一些很酷的附加包,如
moment.js
,可以通过优雅的调用实现这一点。但是,在本机javascript中,您可以使用
vards='16122017'
var myDate=新日期();
myDate.setFullYear(ds.子字符串(4,8),ds.子字符串(2,4)-1,ds.子字符串(0,2));
var today=新日期();
今天。设定时间(0,0,0,0);/*现在变成今天*/
如果(myDate<今天){
/*我的日期在今天之前*/
}
有一些很酷的插件包,比如moment.js
,可以通过优雅的调用实现这一点。但是,在本机javascript中,您可以使用
vards='16122017'
var myDate=新日期();
myDate.setFullYear(ds.子字符串(4,8),ds.子字符串(2,4)-1,ds.子字符串(0,2));
var today=新日期();
今天。设定时间(0,0,0,0);/*现在变成今天*/
如果(myDate<今天){
/*我的日期在今天之前*/
}
如果分配给不同的变量,则无需将其反转,您可以像这样解析它:var b='16122017'。match(/(\d\d)(\d\d)(\d{4})/);新日期(b[3],b[2]-1,b[1])
。不要试图将其解析为另一个使用内置解析器的字符串。如果分配给不同的变量,则无需将其反转。您可以像这样解析它:var b='16122017'。匹配(/(\d\d)(\d\d)(\d{4}/);新日期(b[3],b[2]-1,b[1])
。不要试图将它解析为另一个使用内置解析器的字符串。只需注意,它工作得很好,但子字符串指针的位置很短。myDate.setFullYear(ds.子字符串(4,8),ds.子字符串(2,4)-1,ds.子字符串(0,2));只是一个音符,它工作得很好,但子字符串指针中的一个短。myDate.setFullYear(ds.子字符串(4,8),ds.子字符串(2,4)-1,ds.子字符串(0,2));