如何在Moment js中设置有效的空日期?

时间:2019-04-17 18:08:10

标签: angular angular-material momentjs angular7 angular-moment

因此,我正在使用Angular材质的日期选择器,它只能帮助我选择月份和年份。 https://material.angular.io/components/datepicker/overview#watching-the-views-for-changes-on-selected-years-and-months

但是,除非您执行以下操作,否则该功能将无法正常工作- 日期=新的FormControl(moment()); (除了月份和年份之外,您还可以选择日期。)

我们知道,现在moment()仅返回当前日期和时间。我的主要目标是以应用程序的形式显示现有的用户详细信息。但是,用户可以在表单加载后对其进行编辑。这些字段之一是“物料”日期选择器。现在,它不是必填字段,因此我不会总是从后端收到有效的响应。当答复是日期时,绝对没有问题。但是,每当我收到一个空值时,就会出现主要问题。

我看了一下Moment.js文档(https://momentjs.com/docs/),它清楚地表明一下moment(null)和moment(“”)都是无效日期。因此,一旦我使用两者之一来初始化日期选择器,日期选择器根本不允许我以可编辑模式选择日期。

如何使用moment()设置有效的空日期,而不会干扰日期选择器的功能?

2 个答案:

答案 0 :(得分:2)

我们在项目中遇到了同样的问题,并通过为日期选择器的值添加三元条件来解决该问题。 const dateValue = value ? moment(value) : null;(如果值存在),我们将根据该值创建一个矩对象,如果不存在则应为null。

答案 1 :(得分:1)

如果使用package healthCheck; public class Test2 { public static void main(String[] args) throws InterruptedException { for(int i=0;i<20;i++) { System.out.println("From client "+ItSystemFlag.getFlag()); Thread.sleep(6000); } } } 适配器和时刻日期,则应将组件的日期变量设置为moment,而不是null。在内部,日期选择器将询问适配器日期是否有效,但是moment(null)返回moment(null).isValid(),从而触发解析验证器,该验证器将返回错误。