例如我们的日期是2010年5月12日
<cfset may_12_2010 = CreateDate(2010, 5, 12)>
使用DateFormat
函数,我们可以使用
DateFormat(may_12_2010, "mmmm m dddd d yyyy")
将显示May 5 Wednesday 12 2010
如果由于某种原因我不能使用DateFormat
函数,我们如何用上面的例子显示相同的结果(使用相同的掩码)?
代码:
<cfset may_12_2010 = CreateDate(2010, 5, 12)>
<cfset mask = "mmmm m dddd d yyyy">
#DateFormat(may_12_2010, mask)#
<cfset d = DateFormat(may_12_2010, "d") />
<cfset dd = DateFormat(may_12_2010, "dd") />
<cfset ddd = DateFormat(may_12_2010, "ddd") />
<cfset dddd = DateFormat(may_12_2010, "dddd") />
<cfset m = DateFormat(may_12_2010, "m") />
<cfset mm = DateFormat(may_12_2010, "mm") />
<cfset mmm = DateFormat(may_12_2010, "mmm") />
<cfset mmmm = DateFormat(may_12_2010, "mmmm") />
<cfset yy = DateFormat(may_12_2010, "yy") />
<cfset yyyy = DateFormat(may_12_2010, "yyyy") />
<cfset stringDate = mask />
<cfset stringDate = REReplaceNoCase(stringDate, "d{4,4}", dddd, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "d{3,3}", ddd, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "d{2,2}", dd, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "d", d, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "m{4,4}", mmmm, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "m{3,3}", mmm, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "m{2,2}", mm, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "m", m, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "y{4,4}", yyyy, "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "y{2,2}", yy, "ALL") />
<br>
#stringDate#
上面的代码将显示
May 5 Wednesday 12 2010
5ay 5 We12nes12ay 12 2010
谢谢
答案 0 :(得分:1)
要解决您的问题,只需制作正则表达式:
<cfset stringDate = REReplaceNoCase(stringDate, "\bdddd\b" , dddd , "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "\bddd\b" , ddd , "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "\bdd\b" , dd , "ALL") />
<cfset stringDate = REReplaceNoCase(stringDate, "\bd\b" , d , "ALL") />
....
\b
标记“单词边界”的位置 - 这是单词字符和非单词字符之间的变化,其中“单词字符”是[a-zA-Z0-9_]
- 和所以阻止了“星期三”中的's匹配。
但实际上,只需正确使用DateFormat功能!
答案 1 :(得分:0)
我很困惑为什么你不能使用dateformat。我从未有过dateformat不接受一个值,你甚至可以只使用一个字符串,它并不关心。