2016-11-25 123 views
0

我試圖搜索它,但似乎我找不到正確的答案。 目前我正在將第一封電子郵件發送給公司後從我的一個腳本中上傳當前時間,因此在發送完畢後,它會將now()上傳到MySQL中的其中一個表中。這是上傳YYYY-MM-DD HH:MM:SS時間戳不工作時間

另一個腳本五天之後將重新發送不同的電子郵件與部分腳本

if($company_timestamp < strtotime('-5 days') && $email_sent == "NO"){ /* Code */} 

哪裏$company_timestamp是先告訴的日期和時間。

確實發送了電子郵件,但它似乎沒有得到正確的時間,因爲它甚至在5秒後發送此電子郵件。 日期和時間格式錯誤嗎?我怎樣才能使strotime()與我的now()在數據庫中一起工作。

+0

的什麼是變量'$ company_timestamp'包含 –

+0

一個例子,我只是給自己的電子郵件,它包含:2016年11月24日17點33分57秒 –

+0

嘗試這兩個時間轉換爲UNIX時間,然後比較他們 –

回答

2

你應該定義strototime()應該如何行動。在你的情況下,你必須這樣定義它: date('Y-m-d H:i:s', strtotime('-5 days'));作爲你的變量$ company_timestamp返回YYYY-MM-DD HH:ii:ss。另一種選擇是將變量轉換爲「strtotime」日期。所以:strtotime($ company_timestamp)。

所以,你的代碼將在第一種情況:

if($company_timestamp < date('Y-m-d H:i:s', strtotime('-5 days')) && $email_sent == "NO"){ 
+0

真棒工作JeroenE,解決了我的問題。謝謝 –

+0

沒問題。玩得開心編碼! – JeroenE

0

$company_timestamp是一個字符串,你需要將其轉換之前,你可以比較一下。

<?php 
$email_sent = "NO"; 
$company_timestamp = date('Y-m-d H:i:s'); 

if(strtotime($company_timestamp) < date('Y-m-d H:i:s', strtotime('-5 days')) && $email_sent == "NO") 
{ 
    echo "Yes"; 
} 
+0

'$ company_timestamp'是一個字符串沒有意義。看我的解決方案。這工作和'$ company_timestamp'仍然是一個字符串。請記住,PHP是鬆散類型的。 – JeroenE