值{t不能转换为数字coldfusion

时间:2014-08-06 10:54:23

标签: coldfusion

我正在学习有关冷血的知识。 并使用createdatetime尝试日期时间。 但是显示错误      "值{t无法转换为cfset txtStartTime和cfset txtEndTime行中的数字"

<cfset txtStartTime = createdatetime(year(txtStartDate),month(txtStartDate),day(txtStartDate),left(txtStartTime,2),right(txtStartTime,2),00)>
<cfset txtEndTime = createdatetime(year(txtEndDate),month(txtEndDate),day(txtEndDate),left(txtEndTime,2),right(txtEndTime,2),00)>

我做错了吗?供您参考,我的createdatetime值如下所示: txtStartTime = {ts&#39; 2014-07-22 08:00:00&#39;}和txtEndTime {ts&#39; 2014-07-22 17:00:00&#39;}

非常感谢你们。

3 个答案:

答案 0 :(得分:4)

您的问题是时间{ts '2014-07-22 08:00:00'}。当你对它使用left()或right()时,你将它视为字符串而不是日期对象。

所以2个最左边的字符是{t,这对于createDateTime的小时值无效,因此是错误消息。

答案 1 :(得分:4)

好像你实际上是从ColdFusion开始识别为日期/时间的东西,因此{t问题。您似乎也希望使用这些初始日期/时间的小时和分钟,并使用00秒。如果是这种情况,您可以简单地执行此操作:

<cfset txtStartTime = createdatetime(year(txtStartDate),month(txtStartDate),day(txtStartDate),hour(txtStartTime),minute(txtStartTime),00)>
<cfset txtEndTime = createdatetime(year(txtEndDate),month(txtEndDate),day(txtEndDate),hour(txtEndTime),minute(txtEndTime))>

答案 2 :(得分:2)

是的,所以你有这个:

left(txtStartTime,2)
right(txtStartTime,2)

正如您所指出的,txtStartTime的字符串值是:

{ts '2014-07-22 08:00:00'}

那么left("{ts '2014-07-22 08:00:00'}", 2)的价值是多少?它是{t

right("{ts '2014-07-22 08:00:00'}",2)的价值是多少?它是'}

现在就是你想要的,是吗?

你到底想要做什么?不是“你怎么解决它”,但你想做什么?