我需要计算Dart / Flutter中的值,该值由PHP中的gmmktime() function计算得出。
这是我到目前为止一直在尝试的:
var ms = (DateTime.now().toUtc().millisecondsSinceEpoch)/100;
int ms = DateTime.now().toUtc().millisecondsSinceEpoch;
但这两种方法都提供了一个值,此API在其标头中不希望有此值,这里是:https://api.kitewalk.com/#authentication
答案 0 :(得分:2)
PHP的gmmktime
返回“ Unix time”,这是自“ Unix纪元”以来的秒数。
您的第一种方法几乎是正确的,但是您没有将 milli 秒转换为秒。一秒有1000毫秒,因此您需要除以1000,而不是100。此外,无论您要花费多少时间,都可能需要整数秒数而不是浮点值,因此您需要使用整数除法或事后四舍五入。
还请注意,“ Unix纪元”与时区无关; DateTime.millisecondsSinceEpoch
已经针对固定的时间点进行了测量,因此无需显式转换为UTC(但这不会造成伤害)。
正确的版本应该是:
var unixTime = DateTime.now().millisecondsSinceEpoch ~/ 1000;