如何格式化Coldfusion中的Stripe时间戳

Pao*_*rdo 3 coldfusion stripe-payments

我从Stripe请求返回的字段之一是创建的字段,其中包含值"1351894331".我已经尝试在Coldfusion中使用DateFormat()来格式化它,但这没有用.我想这是某种日期类型/时间戳需要在DateFormatting之前转换,但我需要使用什么?这是什么类型的日期格式?

谢谢

Ada*_*ron 8

这可能是从1970-01-01开始的几秒钟?这段代码:

<cfoutput>#dateAdd("s", 1351894331, createDateTime(1970, 1, 1, 0, 0, 0))#</cfoutput>
Run Code Online (Sandbox Code Playgroud)

输出:

{ts '2012-11-02 21:12:11'}
Run Code Online (Sandbox Code Playgroud)

这会是你期望的时间戳吗?

你读过"Stripe"文档吗?如果我想知道某些事情是如何起作用的,我的第一个停靠点就是RTFM.如果说得恰到好处,可能会有点不确定.

一时兴起,我用Google搜索"条纹创建时间戳的格式".第一个链接到这里.第二个链接转到strip.com的文档中的相关问题,其中说:

是的,所有Stripe时间都以UTC表示为Unix纪元.

为了验证Unix Epoch日期,我也用Google搜索了.答案是:

Unix时间,[...]被定义为自1970年1月1日午夜协调世界时(UTC)以来经过的秒数

当然,如果你的意思是其他类型的"条纹",你将不得不详细说明.

  • @Adam Cameron:事实上,我确实阅读了文档并做了一些谷歌搜索,但显然我无法达到您所做的相同解决方案.所以我应该放弃编程,对吧? (4认同)
  • 也可以使用`createDate(1970,1,1)`来获得第三个参数的相同值. (2认同)
  • @AdamCameron:感谢您对解决方案的帮助,但不是生命课程.:) (2认同)

Pet*_*ton 5

这是一个unix时间戳 - 自1970年1月1日以来的秒数 - 经常用作存储日期的方法.

但不是在CFML中,日期是自1899年12月30日以来的浮动天数.

要将unix时间戳转换为CF日期编号,您需要除以一天中的秒数(86400),然后添加两个日期之间的天数.

<cfset UnixTime = 1351894331 />

<!--- days between 1-Jan-1970 and 30-Dec-1899) --->
<cfset UnixTimeOffset = 25569 />

<cfset CfTime = UnixTimeOffset + UnixTime/86400 />
Run Code Online (Sandbox Code Playgroud)

然后,您可以CfTime在任何日期函数中使用该变量,它们将照常工作.