2015-04-15 1 views
2

Consultez le code suivant:Pourquoi ne formate ColdFusion dates à l'aide Différemment la même fonction

<cfset lateDate = createDate(2014,12,8) /> 
<cfset currentdate = createDate(2015,4,15) /> 
<cfdump var="#lateDate#" /> 
<cfdump var="#currentdate#" /> 
<cfdump var="#dateCompare(currentdate,lateDate)#" /> 

Sortie sur ma machine est: {ts '2014-12-08 00:00:00'} {ts '2015-04-15 00:00:00'} 1

Question 1: Pourquoi le mois mis sur les deux dates. (mois/jour). La spécification indique que la date de création est yyyy,mm,dd et pourtant CF les a permutés ou les affiche en mode commuté.

Il fait le dateCompare correctement donc ce qui se passe. Ai-je regardé cela trop longtemps?

+2

Ouais, je pense que vous avez juste besoin d'un compagnon de pause. Ce code fonctionne bien, et il ne fait pas ce que vous «voyez». Faites une pause et revenez-y. –

Répondre

7

Je pense que vous l'avez regardé trop longtemps. Les deux sont des dates valides et le mois ne change pas. L'une de vos dates est le 15 avril 2015 et l'autre est le 8 décembre 2014. Je suppose que vous pensiez le 12 août 2014 pour cette date. Ensuite, votre code doit être createDate(2014,8,12). Droite?

La fonction dateCompare vous indique uniquement si la première date est antérieure ou postérieure à la deuxième date. Pour vos deux dates, la bonne et votre supposée, la première date est postérieure à la seconde.

Je pense que le code fonctionne correctement. Comme dans:

createDate(2014,8,12) <!--- August 12, 2014 ---> 
createDate(2014,12,8) <!--- December 8, 2014 ---> 
createDate(2015,4,15) <!--- April 15, 2015 ---> 

DateCompare "15 Avril, 2015" "8 Décembre, 2014" renvoie 1

DateCompare "15 Avril, 2015" "12 Août, 2014" renvoie 1

+0

Wow ... en regardant ça maintenant, je jure que ces mois ont été changés il y a quelques heures. – Leeish

+0

Ha. Ne vous inquiétez pas, cela nous arrive à tous. –