我想添加兩個星期到SQL結果,作爲16/11/2016返回。當我做類似的事情添加兩週php
$twoweeks = strtotime($time_db);
$expiry_date = $twoweeks;
$date = strtotime($expiry_date);
$date = strtotime("+14 day", $date);
echo date('d/m/y', $date);
我不斷收到15/01/70 ...任何想法?
我想添加兩個星期到SQL結果,作爲16/11/2016返回。當我做類似的事情添加兩週php
$twoweeks = strtotime($time_db);
$expiry_date = $twoweeks;
$date = strtotime($expiry_date);
$date = strtotime("+14 day", $date);
echo date('d/m/y', $date);
我不斷收到15/01/70 ...任何想法?
您通過將一些變量的strtotime
第一參數取得第4行是錯誤的。 strtotime
需要一個有效日期/時間格式的字符串作爲第一個參數,否則返回FALSE。
如何,我認爲你的代碼應該是:
$twoweeks = strtotime($time_db);
$date = strtotime("+ 2 weeks", $twoweeks);
echo date('d/m/y', $date);
或甚至:
echo date('d/m/y', strtotime($time_db . ' + 2 weeks'));
您可以使用
$numberOfWeeks = 2;
$newTime = strtotime($time_db) + ($numberOfWeeks * 60 * 60 * 24 * 7);
,或者你可以在(MySQL的)直接做選擇
select date_add(your_column, INTERVAL 2 WEEK) from my_table;
我還在15/01/1970。 1970年從哪裏來? – user3080562
你是uisng php或mysql? ..和$ time_db是一個日期或字符串? ..你獲得1/1/1970因爲你time_db不是一個有效的日期,然後加2周你得到15/1/1970 – scaisEdge
這裏發生的事情是,你是16/11/2016日 - 月 - 年和斜槓是一個問題。
如果你的日期是2016年11月16日,你會發現它會是好的。
您需要將這些轉換/替換爲破折號/連字符。
$time_db = "16/11/2016";
$time_db = str_replace('/', '-', $time_db);
$two_weeks_later = date('d-m-Y',strtotime($time_db . "+14 days"));
// or display as Year-month-day
// $two_weeks_later = date('Y-m-d',strtotime($time_db . "+14 days"));
echo $two_weeks_later;
當日期(和時間)的工作,最好使用內置的MySQL日期/時間的功能,而不是將它們保存爲純文本格式;在查詢時,它的麻煩小得多,而且更容易。
參考:
$date = date('Y-m-d H:i:s',time());
$date = strtotime($date);
$date = strtotime("+14 day", $date);
$valuedate= date('Y-m-d H:i:s',$date);
試試這個
你15/01/1970究其原因,是因爲你增加了兩個星期的時間開始,或者更確切地說UNIX時代。某處你的時間戳被分配爲0. – Progrock
現在你有很多答案,試試吧 – devpro
你需要養成[接受答案]的習慣(http://meta.stackexchange.com/questions/5234/how-does-接受答案的工作),它可以幫助你解決你的問題。您將獲得積分,其他人將被鼓勵幫助您。 –