2013-06-04 3 views
0

Je développe un validateur personnalisé d'une entrée de date dans ma forme de flux de travail et j'obtenir un nul après analyse d'une date ce que je fait:Parse alfresco Date

// 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); 

puis-je obtenir ce dans la console :

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

nfDatenull date de echéancenull

Comment puis-je analyser ces deux dates, puis le comparer? .thanks

+0

Pourquoi ne pas transformer la chaîne (Format ISO-8601) dans un objet date natif, et le traiter/le comparer de cette façon? – Gagravarr

Répondre

0

Vous analysez la "valeur" d'une date, pas la date elle-même. La meilleure façon de comparer est, par exemple, d'utiliser le format AAAAMMJJ, et de le comparer à un nombre. Quelque chose comme ça (il est sûr d'une façon beaucoup plus élégante de le faire, mais cette fois-ci est la seule qui m'a):

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;     

et de comparer la valeur de deux dates. Évidemment, vérifiez si la valeur de l'index est correcte, je n'ai pas vérifié les deux. J'espère que ça aide.

1

utilisation Alfresco.util.fromISO8601 (date)

Selon le client-api docs

Convertir une chaîne de date ISO8601 dans un objet Date JavaScript natif