我在HTML5 type="date"
字段中以網頁形式提供用戶輸入。然後這個輸入值(與其他人一起)被保存爲MySQL數據庫中的JSON文檔。現在我需要提取該日期並將其打印到生成的具有給定格式的MS Word文檔中。大!但正如您所知,HTML5日期字段接受日期格式取決於用戶的地區,設置等。我注意到,在不同瀏覽器中輸入的所有日期都以「Y-m-d」格式保存在數據庫中。這在所有情況下都是如此嗎?我可以依賴這種格式以備將來使用嗎?找不到有關該主題的任何規格信息。 如果可以而不是依賴「Y-m-d」格式是否有任何PHP庫用於「猜測」日期格式?用PHP猜測日期格式
0
A
回答
1
首先,爲什麼要將JSON文檔保存在MySQL數據庫中,而不是一些更合適的文檔數據庫(例如MongoDB)?
無論如何,根據this和this顯示的日期格式不同於實際值。 HTTP請求中的日期值將始終格式化爲yyyy-mm-dd
,這是ISO 8601格式,我想它應該是可靠的。
在PHP中,您可以使用DateTime類來處理日期字符串。這個類支持許多不同的日期格式。例如:
// timezone is set based on your system preferences if not set
$date1 = new DateTime('2017-04-27', new DateTimeZone('+00:00'));
$date2 = new DateTime('27 April 2017', new DateTimeZone('+00:00'));
$date3 = new DateTime('2017-04-27T00:00:00+00:00');
var_dump($date1 == $date2); // bool(true)
var_dump($date1 == $date3); // bool(true)
如果日期字符串是錯誤的,將拋出一個異常:
try {
$date = new DateTime('2017 4 27');
} catch (Exception $e) {
echo $e->getMessage(); // DateTime::__construct(): Failed to parse time string (2017 4 27) at position 5 (4): Unexpected character
}
所以,你的情況,你可以,你這個類的日期驗證和比正確的輸出格式,如:
$dateString = '2017-04-27T14:22:11+00:00';
try {
$date = new DateTime($dateString);
echo $date->format('Y-m-d'); // 2017-04-27
} catch (Exception $e) {
// do something else
}
相關問題
- 1. 猜測模式:猜測MySQL數據庫中的日期模式
- 2. Python中許多格式相同的日期的猜測日期格式
- 3. 格式日期格式php
- 4. PHP日期格式
- 5. PHP日期格式
- 6. php日期格式
- 7. 日期格式PHP
- 8. PHP日期格式
- 9. 格式日期(PHP)
- 10. PHP日期格式
- 11. PHP日期格式
- 12. 檢測日期格式C#
- 13. 已讀read_csv2()猜測日期類型
- 14. PHP格式日期格式DST
- 15. 在PHP中格式化日期格式
- 16. PHP - 更改日期格式
- 17. php日期格式化
- 18. PHP日期格式問題
- 19. PHP - 格式化日期
- 20. PHP日期格式精度
- 21. PHP日期格式問題
- 22. PHP格式/驗證日期
- 23. 日期格式問題PHP
- 24. PHP - 日期更改格式
- 25. PHP - 格式日期/時間
- 26. PHP和MYSQL日期格式
- 27. PHP日期格式化
- 28. PHP中的日期格式
- 29. PHP日期格式錯誤
- 30. PHP日期時間格式
感謝Lukas指出MDN和Google Developers。看起來我搜索得太少,無法自己找到答案。最重要的部分是請求總是以yyyy-mm-dd的形式發送。 – erop
我的整個應用程序是依賴於MySQL的。但我需要構建用於輸入硬拷貝文檔屬性的動態表單。 MySQL 5.7.6中新增的JSON類型字段在擴展應用程序功能方面確實幫了我很大的忙。 – erop