找回密码
 加入
搜索
查看: 6669|回复: 14

[效率算法] [已解决]求教时间戳转日期时间

 火.. [复制链接]
发表于 2012-5-14 22:27:00 | 显示全部楼层 |阅读模式
本帖最后由 kxing 于 2012-5-15 13:29 编辑

请问如何将 2012-05-01 19:57
转换成:1335873425

可能多少有些出入,但是这算法是将日期时间按毫秒计算的吗?

请高手解答,多谢
发表于 2012-5-15 12:02:10 | 显示全部楼层
_DateAdd('s',1335873425,"1970/01/01 00:00:00")

评分

参与人数 1金钱 +16 收起 理由
user3000 + 16 学习了, 之前还傻呼呼自己写了一个!

查看全部评分

发表于 2012-5-14 22:46:36 | 显示全部楼层

#Include <Date.au3>

$iDateCalc = _DateDiff('s', "1970/01/01 00:00:00", "2012-05-01 19:57:00" )
MsgBox(4096, "", "Number of seconds since EPOCH: " & $iDateCalc)
发表于 2012-5-15 00:18:07 | 显示全部楼层
这个数字就是时间戳 计算从1970/01/01 00:00:00 到某个时间的秒数
发表于 2012-5-15 09:05:28 | 显示全部楼层
这是从1970年1月1日0时0分0秒起的秒数
发表于 2012-5-15 09:29:53 | 显示全部楼层
之前统计计算机开机时间,我这里精确到分钟,供楼主参考一下
Func _CalcDateDiff($iLastTime)  
        Local $iBootTime,$sBootTime 
        $iBootTime = _DateDiff('n',$iLastTime,_NowCalc())        ;默认按分钟比较,也精确到分钟返回
        If $iBootTime < 60 Then                                        ;[小于1小时,按分计算]
                $sBootTime = $iBootTime & "分"
        ElseIf $iBootTime >= 60 And $iBootTime <1440 Then                ;[大于1小时,但小于1天(1440分钟),按小时+分计算]
                $sBootTime = Int($iBootTime/60) & "小时" & Mod($iBootTime,60) & "分"                ;商=Int(除数/被除数) 余=Mod(除数,被除数)
        ElseIf $iBootTime >= 1440 And $iBootTime < 525600 Then        ;[超过一天且小于1年,按天+小时+分计算]
                Local $sTemp
                Local $iTemp = Mod($iBootTime,1440) ;[天剩下的分钟,一定小于1440分]
                If $iTemp >=60 Then 
                        $sTemp = Int($iTemp/60) & "小时" & Mod($iTemp,60) & "分"        ;天剩下的分钟折算成小时
                Else
                        $sTemp = $iTemp & "分"
                EndIf
                $sBootTime = Int($iBootTime/1440) & "天" & $sTemp
        ElseIf $iBootTime >=525600 Then                        ;[大于1年,按年+天+小时+分计算]
                Local $iYear_Min = Mod($iBootTime,525600)
                Local $sTemp2
                If $iYear_Min <60 Then
                        $sTemp2 = $iYear_Min & "分"
                ElseIf $iYear_Min >=60 And $iYear_Min < 1440 Then
                        $sTemp2 = Int($iYear_Min/60) & "小时" & Mod($iYear_Min,60) & "分"
                ElseIf $iYear_Min >= 1440 Then
                        If Mod($iYear_Min,1440) < 60 Then
                                $sTemp2 = Int($iYear_Min/1440) & "天" &  Mod($iYear_Min,1440) & "分"
                        ElseIf Mod($iYear_Min,1440)>=60 Then
                                $sTemp2 = Int($iYear_Min/1440) & "天" & Int(Mod($iYear_Min,1440)/60) & "小时" & Mod(Mod($iYear_Min,1440),60) & "分"
                        EndIf
                EndIf
                $sBootTime = Int($iBootTime/525600) & "年" & $sTemp2
        EndIf
        Return $sBootTime
EndFunc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-15 09:43:54 | 显示全部楼层
快乐兄的  码   短小精悍
 楼主| 发表于 2012-5-15 09:49:22 | 显示全部楼层
非常感谢楼上各位朋友。。。
 楼主| 发表于 2012-5-15 09:50:50 | 显示全部楼层
那请问怎样反过来呢,将时间戳转换成日期时间。。。
发表于 2012-5-15 10:58:03 | 显示全部楼层
不错,支持一个
 楼主| 发表于 2012-5-15 11:53:13 | 显示全部楼层
高手 帮帮忙,主要是想要时间戳转日期时间。
发表于 2012-5-15 12:08:27 | 显示全部楼层
我试试看我用了多久
 楼主| 发表于 2012-5-15 13:28:07 | 显示全部楼层
多谢多谢。。。。。
发表于 2013-7-3 01:04:52 | 显示全部楼层
学习了,正好遇到此问题
发表于 2017-4-28 13:53:00 | 显示全部楼层
厉害 学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 01:29 , Processed in 0.083995 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表