我正在創建拍賣應用程序,用戶可以在指定的日期時間從不同位置創建自己的autions。cron中的時區問題
我想通知匹配的用戶這次拍賣,但它不工作。 請看看下面的cron,它會每分鐘運行一次。
對於exp:我已經創建了一個拍賣,將開始2017-09-06 10:05
所以拍賣開始之前我想發送通知給匹配用戶2017-09-06 10:04
,但它不工作。
我檢查並發現我的拍賣時間與服務器時間衝突。是否有任何方法可以解決此問題。
我有一個基於用戶位置設置時區,我的應用程序
public function actionCron()
{
$currentTime = time();
$currentTimeFuture =$currentTime+90;
$tableName = \backend\models\Delivery::tableName();
$sql = "select id,user_id,auction_start_time from $tableName where status=1 and is_delete=0 and delivery_status=0 and auction_start_time between $currentTime and $currentTimeFuture";
$data = Yii::$app->getDb()->createCommand($sql)->queryAll();
foreach($data as $_dilevery){
// notification code here
}
}
無論用戶看到什麼,都應該是GUI的功能。在內部,您需要以一致的方式存儲您的時間(例如UTC或您的服務器的時區),否則您最終會遇到類似問題的世界。只需在前端將它們轉換爲用戶首選的時區即可。同樣,來自用戶的任何輸入,在存儲之前轉換爲內部時區。然後在你的數據庫和這個例子中的任何後端操作中,時間都是彼此一致的。 – ADyson