[英]Manipulating Dates in PHP without using Regular Expressions
有沒有辦法更改日期
1985-12-15
至
1985-12
不使用正則表達式?
<?php echo date('Y-m', strtotime('1985-12-15')); ?>
那應該做。
這將使用strtotime將1985-12-15轉換為unix時間戳。 然后,日期函數將使用第二個參數時間戳來格式化日期。
也許我只是愚蠢,但是如果您只想將該日期的開頭存儲為字符串,您是否不能僅使用substr
提取該字符串開頭的7個字符?
有點像這樣,例如:
$input = '1985-12-15';
$output = substr($input, 0, 7);
var_dump($output);
哪一個給你:
string '1985-12' (length=7)
在這種情況下,不需要任何與日期操作相關的功能-而且將字符串解析為日期和所有其他內容的過程可能更快,更便宜。
(是的,我知道,過早的優化^^)
$myDate = date('Y-m',strtotime('1985-12-15'));
echo $myDate // prints '1985-12'
不是最好的substr($date,0,strrpos($date,'-'));
?
那會最便宜嗎?
如果您認為正則表達式不是“便宜的”,那么時間函數幾乎肯定會更加昂貴:您需要將字符串轉換為時間值,然后將其格式化為字符串...
您是否已經在數組中擁有該時間值,或者您想從日期函數中獲得類似的輸出?
如果不確定日期的格式,則應使用strtotime函數,否則,如果格式為yyyy-mmm-dd或yy-md,則可能很容易做到。
$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.