【问题标题】:Add 3 hours to a timestamp generated by new Cassandra\Timestamp() in php将 3 小时添加到由 php 中的 new Cassandra\Timestamp() 生成的时间戳
【发布时间】:2020-09-29 22:05:33
【问题描述】:

我在 php 中使用 new Cassandra\Timestamp() 生成了时间戳。 现在我想用 php 为这个生成的时间增加 2 小时,然后将其存储在数据库(Cassandra)中。

基本上我想做这样的事情:

$dt= new Cassandra\Timestamp();
$new_dt= $dt+3*3600; //here 3 is in hours

$query=$session->prepare('INSERT INTO tracker_table(id,deadline)VALUES(?,?)');
       $session->execute($query,array('arguments'=>array(new \Cassandra\Uuid(),$new_dt)));

**HERE 截止日期列的数据类型设置为时间戳。

我在这里面临的问题是 $dt 返回一个对象数据类型,所以我不能直接向它添加 3 小时。 即使我能够以某种方式增加 3 个小时,cassandra 也不会接受它作为可行的输入。

那么,是否可以通过这种方式将 3 小时直接添加到 cassandra 时间戳,或者我应该将时间作为字符串存储在 DB 中。

我的结局是存储截止日期,然后将当前时间与存储的截止日期进行比较,如果当前时间大于则执行一些代码。 像这样:

 $current_time=time();
 if ($current_time>$deadline){echo "hello"; }

【问题讨论】:

    标签: php cassandra datastax-php-driver


    【解决方案1】:

    这应该可以完成工作;

    $now = time(); // get current timestamp
    $new_dt = new Cassandra\Timestamp($now + (3 * 3600));
    

    【讨论】:

    • 这工作谢谢!但是,如果您能告诉我时间戳调用中逗号后面的 0 是什么,那就太好了。
    • @Zeek 以微秒为单位 - 默认情况下为零,您不必输入它(它仍然有效),抱歉造成混淆。为了清楚起见,对其进行了编辑
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    相关资源
    最近更新 更多