用VBS获取Unix时间戳的函数代码


VBS中没有类似C标准库中的time函数,怎么获取Unix时间戳呢?乍一看很简单:

复制代码 代码如下:

Function UnixTime()
UnixTime = DateDiff("s", "01/01/1970 00:00:00", Now())
End Function

一个很想当然的方法,仅仅注意到了“1970年1月1日0时0分0秒”,而忽略了“协调世界时”。

协调世界时,又称世界标准时间或世界协调时间,简称UTC,从英文“Coordinated Universal Time”而来。在中国大陆的本地时间比UTC快8小时,就会写作UTC+8。如果是在本地时间比UTC时间慢的地区,例如夏威夷的时间是比UTC时间慢10小时,就会写作UTC-10。

而VBS中的Now()函数返回的时间是包括时区的,所以获取Unix时间戳要做一些修正。
复制代码 代码如下:

Function UnixTime()
Set objWMIService = _
GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem",,48)
For Each objItem in colItems
TimeZone = objItem.CurrentTimeZone
Next
UnixTime = DateDiff("s", "01/01/1970 00:00:00", Now())
UnixTime = UnixTime - TimeZone * 60
End Function

这才是正确的写法。
参考链接:Epoch & Unix Timestamp Conversion Tools
原文:http://demon.tw/programming/vbs-unix-time-stamp.html



相关阅读:
挑战最棒的留言本的源码(二)
PHP 5昨天隆重推出--PHP 5/Zend Engine 2.0新特性
jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法
定义列表
Oracle数据库SQLPLUS中几个常用set语句
css 非表格垂直对齐效果代码
查出最早登录的数据和最晚登录的数据番号
使用XMLHttpRequest对象 2.2 方法和属性
一个经过高手优化的MySQL数据库实例
js 冒泡事件与事件监听使用分析
讲解Oracle数据库冷备份恢复的具体步骤
如何准确定时运行ASP文件
jquery异步循环获取功能实现代码
Div+css布局及Web标准对网站优化及SEO方面的好处
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4