查看完整版本: 怎摸把入住日期與退房時間內的日期叫出來?
頁: [1]

goddamnx2 發表於 2015-8-8 12:26 PM

怎摸把入住日期與退房時間內的日期叫出來?

因為從訂房網站下載的資料是給入住區間 ex: 入住 and 退房時間
而我自己寫的php網站是每天每間一筆資料在儲存
我想把訂房網站的資料匯入我的資料庫的話,需要怎摸做?
例如:
訂房網站的資料是
2015-08-12 入住 / 2015-08-15 退房
要匯入我的資料庫需要 2015-08-12, 2015-08-13, 2015-08-14, 三天的形式
目前只知道要先把字串轉成日期的形式,接下來就不知了

$checkin="2015-08-12";
$d=explode("-",$checkin);
$date=date("$d-$d-$d");



...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

happy48 發表於 2015-8-8 02:42 PM

入住多天應該不用寫多筆吧
你可以寫入住時間 AND 退房時間

若真的到時需要所有天數再寫一隻程式來轉都還來的及
你要先確認你資料格式的運用~

想做到什麼功能~這樣會比較有方向

goddamnx2 發表於 2015-8-8 03:02 PM

我試了一下 for迴圈,當我$checkin="2015-08-30";
可以區間的日期跑出來,不過當
$checkin="2015-09-01";
就gg了,我就覺得用這樣的寫法跨月好像會有問題
程式碼如下
-------------------------
$today=date("Y-m-d");
$checkin="2015-09-01";
$d=explode("-",$checkin);
$date=date("$d-$d-$d");
for ($a=$today; $a<$date; $a++){
echo $a."<br>";
}

jehovahcloud 發表於 2015-10-19 09:29 PM

我這邊有個小建議,我個人在處理時間時,我都是用 time() 這個數值,對應到 MySQL 欄位可以使用 BIGINT UNSIGNED 來使用。然後至於字串怎麼轉到這個數值呢!我都是用 strtotime( "時間文字" )!至於轉到這個東西有啥好處捏,就是可以在資料庫中直接當作一般數字來比,這樣方便多了。

舉例來說:我要找 2015/10/19 00:00:00 要入住的名單,我就只要

$time = strtotime( "2015/10/19 00:00:00 +0800" );
$sql = "SELECT * FROM `booking` WHERE `bookingTime` <= {$time}"

然後把 sql 送去 query 就可以了,這邊不需要擔心 sql injection,因為 strtotime 不是 0 就是正整數。...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

alextang1030 發表於 2015-11-9 12:23 PM

你是想要把兩個時間前中間的每一天都叫出來對吧?
那在PHP上只要找到兩天中間的差,然後一天一天的列出來就好了
兩個關鍵字,可以自己去查:

$in_date->diff($out_date);

$in_date->modify('+1 day');<br><br><br><br><br><div></div>

css6666 發表於 2015-12-1 01:41 AM

$date1="2015-05-03";
$time = date("Y-m-d",strtotime( $date1."+1 day" );//加一天
$time2 = date("Y-m-d",strtotime( $date1."+2 day" );//加二天
頁: [1]