###前提・実現したいこと
ここに質問したいことを詳細に書いてください
Heroku上で、PHPを用いてLINE Messaging APIを用いたbotの開発を行っています。
テキストファイルにタイムスタンプを記述しておき、fgetsで一行目に書いたタイムスタンプ(1514542087)を取得、二行目も存在するので、rtrimで改行を取り除いて。
最後にintのキャスト処理で数値に変換するのですが、値が0になります。
これを正しい数値として取得したいです。
作っているプログラムについて、詳しく書くと
相手が「草」と言ったときに「草」と返す挙動なのですが、連続で返しても面白くないので、
LINEbot自身が「草」と言った時刻をテキストファイルにタイムスタンプの形で保存。次に相手が「草」と発言した際にはそのタイムスタンプを参照して、現在時刻とタイムスタンプを比較、一時間たっていなければ反応しない。という挙動を行おうとしています。
###発生している問題・エラーメッセージ
エラーメッセージ
###該当のソースコード
php
ここにご自身が実行したソースコードを書いてください
$fp = fopen("jikan.txt",'r');
//読み込みモードでファイルを開く
if($fp === false){
error_log("file open error");
}
$date = fgets($fp);
$key = fgets($fp);
$date = rtrim($date);
//ここで$dateを出力すると、1514542087ときちんと出力される。
//また、typeをみてもString型である
$date = (int)$date;
//この$dateを出力すると、0が出力される
###試したこと
課題に対してアプローチしたことを記載してください
gettype($date) => integer
$date = (double)$date
//intでのキャストをdoubleに変更
gettype($date) => double
$dateを出力 => 0
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
質問いただいた出力結果を貼り付けます。
'$date='.$date.", 5時間前=".$hour5.", 型=".gettype($date))の出力結果です。
回答2件
あなたの回答
tips
プレビュー