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

将时间戳转换为17位精度unix时间(UTC)的pubnub时间戳,pubnub,Pubnub,我正在尝试将时间戳2016-02-11 03:31:18转换为17位精度的unix时间(UTC)的pubnub时间戳,类似于 我试过跟随,但运气不好 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); consol

我正在尝试将时间戳2016-02-11 03:31:18转换为17位精度的unix时间(UTC)的pubnub时间戳,类似于 我试过跟随,但运气不好

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
上面的示例给出了10个字符的输出
142360085
,其中pubnub要求17位时间戳

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

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

将unix时间戳转换为PubNub Timetoken 17位精度 简单易懂:
时间戳*10000

除了PHP。❌ PHP❌ 不支持此级别的整数精度!您可以改为使用字符串连接和强制

$tt = $unixtime_milliseconds . "0000";
unix时间必须以毫秒精度表示,无分数/no float

使用JavaScript尝试这个示例

//变量
var时间戳=+新日期;
var unix_time=document.getElementById(“unix时间戳”);
var pubnub_time=document.getElementById(“pubnub timetoken”);
//转化
函数unix_to_pubnub(时间){
返回时间*10000;
}
//更新时间
unix_time.innerHTML=时间戳;
pubnub_time.innerHTML=unix_to_pubnub(时间戳)
-Unix时间戳

-Android中的PubNub Timetoken
获取当前Timetoken

  static Long getCurrentHourToken() {
        return (Calendar.getInstance().getTimeInMillis()) * 10000L;
    }

    static Long getBeforeHourToken(int hours) {
        return (Calendar.getInstance().getTimeInMillis() - TimeUnit.HOURS.toMillis(hours)) * 10000L;
    }

在iOS中如何获取当前时间戳。这是为PubNub编写的。

 static func currentTimeInMilliSeconds()-> CUnsignedLongLong {
           let currentDate = Date()
           let since1970 = currentDate.timeIntervalSince1970
           return CUnsignedLongLong(since1970 * 1000)
       }

函数parseDateTime{var b=s.split(/\D/);返回新日期(b[0],b[1]-1,b[2],b[3],b[4],b[5])var timestamp=parseDateTime(“2015-02-11 02:10:54”);var unix_time=document.getElementById(“unix时间戳”);var pubnub_time=document.getElementById(“pubnub timetoken”);//转换函数unix_to_pubnub(time){return time*10000;}//Update time unix_time.innerHTML=时间戳;pubnub_time.innerHTML=unix_to_pubnub(时间戳)@你能检查一下代码吗?我的意思是这是正确的我在做什么?我在这里传递的是日期而不是日期对象。如果错误,请纠正我。在上面的评论中,我试图将日期(字符串)转换为pubnub timetoken,生成14236008540000000-pubnub timetoken,我希望这是正确的。是的,这是正确的。它将不匹配该频道历史记录中的消息,但它将根据您使用的参数(开始或结束)在该时间标记之前或之后返回结果。不!这对我没用!:(即使我也尝试过使用php sdk,但运气不佳,请查看并希望您能提供帮助。不幸的是,这个答案与PubNub history API调用冲突,因为如果使用“上次读取”,您将不再排除(开始)或包括(结束)历史记录项。)人工以“0000”结尾的timetoken。Android中的可能重复项是不正确的。PubNub使用
Int64(self/10_000_000)
将timetoken转换为日期。因此,在另一个方向上,我们需要这样做
Int64(date.timeintervalnce1970*10_000_000)