所以我知道如何在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. PHP重新格式化Blogger日期
- 2. 重新格式化日期
- 3. 重新格式化日期
- 4. 自定义日期格式
- 5. Linqpad中的自定义日期格式
- 6. 自定义日期时间,自定义日期格式
- 7. 在PHP中格式化日期格式
- 8. 重新格式化日期时间
- 9. 重新格式化日期时间
- 10. 重新格式化日期轨道4
- 11. 重新格式化日期对象(Java)
- 12. .NET中的自定义文化感知日期格式
- 13. 标准日期格式与自定义日期格式
- 14. Yii自定义日期格式(模式)
- 15. 在MYSQL中重新格式化日期以PHP输出
- 16. 如何在PHP中定义我自己的日期格式?
- 17. 将格式化日期添加到自定义网格
- 18. POST之前的PHP重新格式化日期
- 19. php日期格式化
- 20. PHP - 格式化日期
- 21. PHP日期格式化
- 22. PHP日期()格式化
- 23. 在PHP格式化日期
- 24. Groupby日期,重新格式化我的日期
- 25. 新日期()格式化
- 26. 在php中创建自定义日期格式
- 27. 在php中自定义日期格式为mysql
- 28. PyQt Paint自定义日期格式
- 29. SAS - 自定义日期格式 - 为YYYYMMDDhhmmss
- 30. 自定义日期格式mmm:ss
他们不是全部都是2000,我确实需要4位数的年份 – muncherelli 2010-09-17 02:27:06
@ user239292:用一个简单的条件来区分20和21世纪是很容易的。 – animuson 2010-09-17 02:28:53