【发布时间】:2009-07-06 16:08:06
【问题描述】:
我需要将 PHP 应用程序创建的毫秒字段转换为日期值。有没有办法使用 VBScript 做到这一点?还是在 SQL 2005 中转换为日期时间?
示例:1113192000 到 mm/dd/yyyy hh:mm:ss
【问题讨论】:
标签: date asp-classic vbscript
我需要将 PHP 应用程序创建的毫秒字段转换为日期值。有没有办法使用 VBScript 做到这一点?还是在 SQL 2005 中转换为日期时间?
示例:1113192000 到 mm/dd/yyyy hh:mm:ss
【问题讨论】:
标签: date asp-classic vbscript
类似下面的东西应该可以工作:
Function ConvertPhpToDate(numSeconds)
Dim dEpoch
dEpoch = DateSerial(1970,1,1)
ConvertPhpToDate = DateAdd("s",numSeconds,dEpoch)
End Function
注意,php time() 函数返回“秒”的数量,而不是毫秒。 http://php.net/manual/en/function.time.php
【讨论】:
我认为您所说的毫秒实际上是 php 的时间/日期函数返回的纪元时间。您可以给这个函数一个镜头,以在 ASP 中将纪元时间转换为日期时间格式:
函数 epoch2date(myEpoch)
epoch2date = DateAdd("s", myEpoch, "01/01/1970 00:00:00")
结束函数
【讨论】:
msValue = 32312312
dtValue = DateAdd("s", msValue/1000, CDate("1970-01-01 00:00:00"))
将其包装在一个函数中:
Function TimestampToDate(timestamp)
TimestampToDate = DateAdd("s", timestamp/1000, CDate("1970-01-01 00:00:00"))
End Function
【讨论】:
您需要有一个基准时间来计算毫秒数,例如1970 年 1 月 1 日或类似日期。
然后您将毫秒数除以 1000 得到秒数 - 保存余数。
将秒数除以 60(保存余数)得到分钟数。
然后是 60 小时,24 天。
那么这会变得很困难,因为您需要考虑闰年。有another question on this here。
获得年、日、小时、分钟、秒和毫秒后,将其添加到基本日期时间以获取表示的日期时间。
其他人发布了您可能使用的代码等。
【讨论】: