回答
<?php echo date('Y-m', strtotime('1985-12-15')); ?>
這應該做到這一點。
這將使用strtotime將1985-12-15轉換爲unix時間戳。日期函數然後獲取格式化日期的第二個參數時間戳。
$myDate = date('Y-m',strtotime('1985-12-15'));
echo $myDate // prints '1985-12'
不是最好substr($date,0,strrpos($date,'-'));
?
那會是最便宜的嗎?
也許我只是愚蠢的,但如果你只想要該日期的開始,存儲爲一個字符串,你不能只使用substr
提取該字符串的開始7個字符?
有點像這樣,例如:
$input = '1985-12-15';
$output = substr($input, 0, 7);
var_dump($output);
哪個不給你:
string '1985-12' (length=7)
無需相關功能的任何日期的操作,在這種情況下 - 而這將可能甚至更快/更便宜,解析字符串到日期和所有。
(是的,我知道,過早的優化^^)
woot如果1985-1-1:D – n00b 2009-09-21 17:38:01
@ noob52:注意到 - 在這種情況下,問題是「將該日期存儲爲1985-01-01 ,還是如1985-1-1?「 ;我會使用第一個解決方案,並且我承認我沒有考慮第二個解決方案^^ – 2009-09-21 17:40:04
如果你覺得正則表達式是不是「便宜」,那麼時間函數幾乎肯定會更貴:你需要轉換將字符串轉換爲時間值,然後將其格式化回字符串中...
您是否已將該時間值已存在於數組中?或者您是否具有這種類似於日期函數的輸出?
如果您不確定日期是如何形成的,您應該使用strtotime函數,否則如果格式爲yyyy-mmm-dd或yy-m-d,可能很容易。
$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];
- 1. 正則表達式日期
- 2. 使用正則表達式和jQuery來操縱日期字段
- 3. 分割,而無需使用正則表達式
- 4. 正則表達式的日期格式
- 5. 正則表達式日期格式
- 6. 日期格式的正則表達式
- 7. 正則表達式日期格式?
- 8. jquery正則表達式日期格式
- 9. 正則表達式 - 日期格式
- 10. 正則表達式解析日期 - 使正則表達式更貪婪
- 11. 正則表達式不使用正則表達式的工作
- 12. 「正則表達式模式無效」,而用數組替換正則表達式
- 13. 正則表達式使用\ + =無法按預期工作/逃脫 '+'
- 14. 使用正則表達式,而無需創建一個正則表達式對象 - JavaScript的
- 15. 正則表達式日期驗證
- 16. 正則表達式的日期
- 17. RFC 2822日期正則表達式
- 18. 驗證日期與正則表達式
- 19. Python正則表達式日期
- 20. JavaScript正則表達式驗證日期
- 21. VBA正則表達式匹配日期
- 22. 包含日期的正則表達式
- 23. 正則表達式查找日期DIR
- 24. perl正則表達式與日期
- 25. Scrapy日期捕獲正則表達式
- 26. 正則表達式來縮短日期
- 27. 正則表達式的日期
- 28. 正則表達式的日期
- 29. PHP - 正則表達式驗證日期
- 30. 日期的正則表達式驗證
道具試圖避免不必要的正則表達式。 :-) – staticsan 2009-09-21 23:23:33