是否有任何PHP函數可將當前年齡轉換爲格式爲YYYY-MM-DD
的日期。我存儲在DOB在YYYY-MM-DD
格式和我想要運行SQLite的查詢:將年齡轉換爲當前日期
SELECT FirstName FROM mytable WHERE DOB >= $MinAge AND DOB <= '$MaxAge';
我搜索谷歌年齡轉換爲日期格式,但找不到任何功能,是有任何人誰可以幫忙嗎?
是否有任何PHP函數可將當前年齡轉換爲格式爲YYYY-MM-DD
的日期。我存儲在DOB在YYYY-MM-DD
格式和我想要運行SQLite的查詢:將年齡轉換爲當前日期
SELECT FirstName FROM mytable WHERE DOB >= $MinAge AND DOB <= '$MaxAge';
我搜索谷歌年齡轉換爲日期格式,但找不到任何功能,是有任何人誰可以幫忙嗎?
是否有任何PHP函數現在的年齡轉換爲日期
沒有,年齡比包含日期的信息較少。一個人有三千六十六歲的可能性是X歲,但出生日期恰好映射到一個年齡段。
換句話說,如果我告訴你我20歲,並要求你告訴我我的生日,那麼你不能確定。但是,如果我告訴你我的生日,那麼你可以肯定地告訴我我的年齡。
由於您的專欄名爲DOB,因此我假定您存儲了出生日期,而不是年齡。在這種情況下,有可能獲取特定年齡段的用戶。
我們假設您想要查找年齡在18歲到50歲之間(包括18歲和50歲)的所有用戶。
對於用戶是今天18,他的生日必須是:today - 18 years
today - 19 years
對於用戶是今天50時,他的生日一定要:
today - 50 years
today - 51 years
注意, 「之前或者在」 和 「後」 僅僅 「< =」 和 「>」 表示。
那麼,如果你想要所有18到50歲之間的用戶呢?
你可以只取兩個外部界限:
用戶的年齡是18和50之間IFF:
dob <= (today -18 years) and dob > (today - 51 years)
$lower = date('Y-m-d', strtotime('today -18 years'));
$upper = date('Y-m-d', strtotime('today -51 years'));
$query = "SELECT FirstName FROM users WHERE dob >= '$lower' AND dob < '$upper';";
請注意,如果您之前1970年(52十歲上下的計劃日期),你應該使用DateTime而不是日期和sttrtotime(我實際上只在實際代碼中使用DateTime,但date/strtotime使得更簡單的例子)。
以日期時間爲85年前的一個例子:
$d = new DateTime('today -85 years');
$s = $d->format('Y-m-d'); //1927-06-03 as of 3 June 2012
高度讚賞,我會在早上嘗試一下這段代碼。 –
還有一件事我該如何將變量添加到-85,如 $ d = new DateTime('today - $ MIN years'); 我得到錯誤 - $ MIN –
@SaudIqbal使用雙引號。變量不會插入到單引號中。 (另外,感謝雙編輯欺騙。意外覆蓋你的編輯:p) – Corbin
認爲,通過,你怎麼能轉換'32年到「1980年4月23日不知道出生年月日的一天? – davidaam