如何限制系统日期格式
因为系统日期格式里有:yy.m.d
yy-m-d
yy/m/d
此时
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", "13-8-1 19:57:00" )
是不能进行比较的,得出结果为0,同样,如果用户把系统格式设置为以上三种其中一种,那么
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc())
也是不能进行比较的,得出的结果为0.
因此请教高手,如何通过AU3,限制系统日期格式,避免用户设置以上三种格式,即只能设置以上三种之外的格式,如2013/01/01,或2013-01-01,或2013.01.01等年份为四位数的格式呢? 自己给自己找了一种方法,修改注册表
sShortDate的值,其中月份要大写
各位还有其他的解决方法不,因为修改注册表一些杀毒软件会拦截... 感到很奇怪, 限制系统的时间格式与你比较时间有什么关系呢?
为了方便比较?直接用 _NowCalc 获取当前时间不就可以吗?
$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc()) 返回0 难道不对吗?
楼主,你是从2100年穿越回来的? 本帖最后由 chamlien 于 2013-8-29 22:16 编辑
回复 3# user3000
如果你把你的系统日期格式改为yy/M/d,或者yy.M.d
再来用$iDateCalc = _DateDiff('y', "2013/01/01 00:00:00", _NowCalc()) ,也可以把'y',改成'h'试试看,也是0的。
我这边测试没有问题,就算你把系统日期改成什么格式,他不会影响_NowCacl()函数返回的格式的,一切正常! 用宏取各个时间量
@YEAR..... @HOUR .....
再字符串拼接成_DateDiff 要求的格式"2013/01/01 00:00:00", date.au3里的函数 取时间本实际就是要用
@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC
这些宏 拼接起来的
以下是 date.au3内的 取当前时间的 _Now()函数源码
Func _Now()
Return (_DateTimeFormat(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, 0))
EndFunc
so .... 你懂的......... 发帖赚钱,赚钱不容易的
页:
[1]