将时间戳转换为 17 位精度 Unix 时间 (UTC) 的 pubnub 时间戳

Sha*_*hah 3 pubnub

我正在尝试将时间戳 2016-02-11 03:31:18 转换为 17 位精度 unix 时间(UTC)的 pubnub 时间戳,例如pubnub给出的参考网址中给出的 13406746780720711 我尝试过以下操作,但没有运气

function parseDateTime(s) {
  var b = s.split(/\D/);
  return new Date(b[0],b[1]-1,b[2],b[3],b[4],b[5])
}
date = new Date(parseDateTime("2015-02-11 02:10:54") / 10000);
console.log(date.getTime());//142360085
Run Code Online (Sandbox Code Playgroud)

上面的示例给出了14236008510 个字符的输出,其中 pubnub 要求 17 位时间戳。

这样做的原因是我想获取特定用户的未读消息并通过电子邮件在 EOD 发送电子邮件。

将 mytimestamp 转换为 17 位精度的 unix 时间 (UTC) 后,我会将其传递给pubnub 历史记录函数 并获取未读消息。

Ste*_*lum 5

将 Unix 时间戳转换为 PubNub Timetoken 17 位精度

\n\n

易如反掌:timestamp * 10000

\n\n

PHP 除外。\xe2\x9d\x8c PHP \xe2\x9d\x8c 不支持这种级别的整数精度!您可以改为使用字符串连接和强制。

\n\n
$tt = $unixtime_milliseconds . "0000";\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

你的unix时间必须以毫秒精度表示,没有小数/没有浮点数

\n
\n\n

使用 JavaScript 尝试此示例。

\n\n

\r\n
\r\n
$tt = $unixtime_milliseconds . "0000";\n
Run Code Online (Sandbox Code Playgroud)\r\n
// Vars\r\nvar timestamp   = +new Date;\r\nvar unix_time   = document.getElementById("unix-timestamp");\r\nvar pubnub_time = document.getElementById("pubnub-timetoken");\r\n\r\n// Conversion\r\nfunction unix_to_pubnub(time) {\r\n    return time * 10000;\r\n}\r\n\r\n// Update Time\r\nunix_time.innerHTML   = timestamp;\r\npubnub_time.innerHTML = unix_to_pubnub(timestamp);
Run Code Online (Sandbox Code Playgroud)\r\n
\r\n
\r\n

\n