我是Coldfusion的新手。我试图更改一个类似于" 2014年6月11日,晚上8:50"到" 2014年6月11日"。我试着用
<cfset album[currentrow]['date'] = ListGetAt(album[currentrow]['date'], 2, ",")>
它给了我2014.如果我改变2比1,我得到6月11日。有人可以给我一些建议,如果有方法在第二个&#34;,&#34; ?非常感谢您的帮助。
答案 0 :(得分:3)
使用字符串混乱并不困难,但由于您正在处理日期,因此请使用日期函数。 如果你有一个字符串,最好的办法是使用
将其转换为Date对象<cfset myDate = ParseDateTime(string)>
然后,一旦它成为日期对象,您就可以随心所欲地做任何事情。使用Dateformat根据需要对其进行操作。
<cfoutput>#dateformat(myDate, "mmm dd, yyyy")#</cfoutput>
ParseDateTime documentation here
编辑 - 改为使用字符串。
您可以使用LEFT获取字符串的左侧部分。要知道你想要多少个字符,你需要找到第二个字符的位置&#34;,&#34;逗号。假设格式一致,第一个逗号不应超过8个字符,因此我们使用FIND查找&#34;,&#34;在字符串中,从第8位开始。
<cfset theLoc = find(",", album[currentrow]['date'], 8) >
然后我们使用left函数来获取字符,但是我们不想要逗号,所以我们从中获取1。
<cfset theDate = left( album[currentrow]['date'], theLoc- 1 )>
<cfoutput>#theDate#</cfoutput>
你可以全部内联,但它有点麻烦
<cfset theDate = left( album[currentrow]['date'], find(",", album[currentrow]['date'], 8)- 1 )>
答案 1 :(得分:2)
如果你可以保证字符串总是由三个以逗号分隔的部分组成,并且日期总是前两个,那么你可以这样做:
dateTimeString = "Jun 2, 2014, 6:20 PM";
dateString = listDeleteAt(dateTimeString, 3);
date = parseDateTime(dateString);
dateFormattedForOutput = dateFormat(date, "mmm d, yyyy");
请注意,您应该只使用dateFormattedForOutput
作为输出;如果您要存储日期或操纵日期,请使用date
。