所以我知道如何在PHP中格式化日期,但不能從自定義格式中格式化日期。我有一個字符串「YYMMDD」的日期,我想使它成爲「MMDDYYYY」。當MM和DD都是低位數字時,strtotime看起來不會很好。重新格式化PHP中的自定義日期
1
A
回答
-1
已結束up做:
$expiration_date_year = substr($matches['expiration_date'],0,2);
$expiration_date_month = substr($matches['expiration_date'],2,2);
$expiration_date_day = substr($matches['expiration_date'],4,2);
$expiration_date = date('m/d/Y', mktime(0,0,0,$expiration_date_month, $expiration_date_day, $expiration_date_year));
3
使用str_split:
$date1 = "YYMMDD";
list($yy, $mm, $dd) = str_split($date1, 2);
// MMDDYYYY format, assuming they are all > 2000
$date2 = $mm . $dd . "20" . $yy;
2
如果你正在運行PHP> = 5.3,看看DateTime::createFromFormat
否則,如果你不想使用純字符串處理技術,使用更原始strptime
與mktime
一起解析。將時間轉換爲UNIX時間戳,然後可以使用date
格式化。
0
有許多日期之前1910年?如果不是,你可以檢查你的YY爲< = 10,如果爲真,則前面加上「20」,否則加上「19」...有點類似MM和DD檢查< 10,如果是真的,則加上「0」。 (這是全部爆炸後或子字符串...將每個部分分配給它自己的變量,即$ M = $ MM; $ D = $ DD; $ Y = $ YYYY;然後按您想要的順序拼接/排列。 ..只是對皮膚衆所周知的貓另一個潛在的方式...
1
也許我下想這,但你能不能只:
$oldDate='040220'; // February 20th, 2004
$year = substr($oldDate, 0,2);
$year += $year < 50 ? 2000 : 1900;
$date = preg_replace('/\d{2}(\d{2})(\d{2})/', '$1/$3/'.$year, $oldDate);
而且你有你要找的字符串或者足夠接近它的東西,以至於你可以從我在這裏寫的內容中修改。
相關問題
- 1. 重新格式化日期
- 2. 自定義日期格式
- 3. 在PHP中格式化日期格式
- 4. .NET中的自定義文化感知日期格式
- 5. 如何在PHP中定義我自己的日期格式?
- 6. PHP日期格式化
- 7. 在PHP格式化日期
- 8. PHP日期()格式化
- 9. php日期格式化
- 10. Groupby日期,重新格式化我的日期
- 11. 在php中創建自定義日期格式
- 12. 在php中自定義日期格式爲mysql
- 13. PyQt Paint自定義日期格式
- 14. Matplotlib autodatelocator自定義日期格式?
- 15. 自定義日期驗證格式
- 16. 自定義SQL日期時間格式
- 17. DataTables自定義日期格式排序
- 18. 如何自定義日期格式
- 19. 自定義格式包括日期
- 20. 自定義日期格式mmm:ss
- 21. 自定義長日期格式js
- 22. Java日期自定義格式爲ZonedDateTime
- 23. c#自定義日期格式
- 24. 帶自定義格式化日期的Date.Parse
- 25. 使用PHP重新格式化MySQL日期
- 26. 在Google電子表格中重新格式化日期
- 27. JSON.NET反序列化自定義日期格式
- 28. 爲自定義日期格式設置文化信息
- 29. 格式化日期到特定格式
- 30. 重新格式化PHP
他們不是全部都是2000,我確實需要4位數的年份 – muncherelli 2010-09-17 02:27:06
@ user239292:用一個簡單的條件來區分20和21世紀是很容易的。 – animuson 2010-09-17 02:28:53