我只是在学习 ColdFusion 函数 CreateDate
。但是,当我使用 CreateDate 时,值输出是不同的。我的意思是它每月都在变化。
<cfoutput>
<cfset txtBirthDate='07-10-1983'>
<cfset valueOf_txtBirthDate = dateFormat(CreateDate(Year(txtBirthDate),Month(txtBirthDate),Day(txtBirthDate)),'YYYY-MMM-DD')>
#txtBirthDate#<br/><br/>
#valueOf_txtBirthDate#<br/>
</cfoutput>
txtBirthDate 的值是 07-10-1983,但是 CreateDate
创建的 valueOf_txtBirthDate 的值是 1983 年 7 月 10 日。为什么是七月?应该是十月:07(日期),10(月),1983(年)。
格式有问题吗?
最佳答案
您正在以一种非常复杂的方式使用 createDate()
。 txtBirthDate
不是日期,因此您不应将其用作日期函数的输入,例如 year()
、month()
等. 在您使用日期函数时,输入应该已经是一个日期对象。
假设您从字符串 07-10-1983
开始,格式为 mm-dd-yyyy
。
txtBirthDate ='07-10-1983'; // dd-mm-yyyy
// extract the specific date parts from the string
yyyy = listLast(txtBirthDate, "-");
mm = listGetAt(txtBirthDate, 2, "-");
dd = listFirst(txtBirthDate, "-");
// create a date object out of those components
birthDate = createDate(yyyy, mm, dd);
// output the date object in human readable format
writeOutput(dateFormat(birthDate, "YYYY-MM-DD"));
(显然,在实际代码中,您不会有那些仅用于说明显而易见的注释!)
仅在输出时在最后一点使用 dateFormat()
。对于其他日期操作,请使用实际的日期对象:birthDate
。
关于date - ColdFusion 创建日期(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25540525/