解析露天日期

时间:2013-06-04 14:39:07

标签: alfresco alfresco-share

我正在我的工作流表单中开发一个日期输入的自定义验证器,在解析日期之后我得到一个null,这就是我所做的:

// check dates can be parsed        
    str_expiryDate = field.form.prop_wfbxTestWorkFlow_NfDate.value;
    console.log("Non conformite"+str_expiryDate);

    str_reminderDate = field.form.prop_bpm_workflowDueDate.value;
     console.log("echeance"+str_reminderDate);

    Alfresco.logger.warn("Expiry Date: " + str_expiryDate + " | Reminder Date: " + str_reminderDate);

    d_expiryDate = Date.parse(str_expiryDate);
    console.log("nfDate"+str_expiryDate);

    d_reminderDate = Date.parse(str_reminderDate);
    console.log("Date echéance"+d_reminderDate);

然后我在控制台中得到这个:

Non conformite2013-06-21T00:00:00.000+01:00 echeance2013-06-09T00:00:00.000+01:00

nfDatenull 日期echéancenull

我如何解析这两个日期然后进行比较? .thanks

2 个答案:

答案 0 :(得分:1)

使用 Alfresco.util.fromISO8601(日期)

根据client-api docs

  

将ISO8601日期字符串转换为JavaScript本机Date对象

答案 1 :(得分:0)

您正在解析日期的“值”,而不是日期本身。 比较的最佳方式是imho,使用格式YYYYMMDD,然后将其作为数字进行比较。 这样的事情(确实有一种更优雅的方式可以做到这一点,但此时它是唯一能让我这样做的人):

var indexDate=str_expiryDate.indexOf("-");
var dayDate=str_expiryDate.substring(0, 2);
var monthDate=str_expiryDate.substring(3, 5);
var yearDate=fromData.substring(6, str_expiryDate.length+1);
int dataNew=yearDate+monthDate+dayDate;                 

并比较两个日期值。 显然检查索引值是否正确,我没有仔细检查它们。 希望有帮助。