有没有办法从
更改日期1985-12-15
到
1985-12
不使用正则表达式?
答案 0 :(得分:7)
<?php echo date('Y-m', strtotime('1985-12-15')); ?>
应该这样做。
这将使用strtotime将1985-12-15转换为unix时间戳。然后,日期函数采用第二个参数时间戳来格式化日期。
答案 1 :(得分:4)
答案 2 :(得分:3)
也许我只是愚蠢,但如果你只想要那个日期的开头,存储为字符串,你不能只用substr
来提取该字符串开头的7个字符吗? / p>
有点像这样,例如:
$input = '1985-12-15';
$output = substr($input, 0, 7);
var_dump($output);
哪位能给你:
string '1985-12' (length=7)
在这种情况下,不需要任何与日期操作相关的函数 - 这可能会更快/更便宜地将字符串解析为日期和所有这些。
(是的,我知道,过早优化^^)
答案 3 :(得分:0)
$myDate = date('Y-m',strtotime('1985-12-15'));
echo $myDate // prints '1985-12'
答案 4 :(得分:0)
不适合substr($date,0,strrpos($date,'-'));
?
哪个会最便宜?
答案 5 :(得分:0)
如果您认为正则表达式不“便宜”,那么时间函数几乎肯定会更加昂贵:您需要将字符串转换为时间值,然后将其格式化为字符串... < / p>
答案 6 :(得分:0)
你是否已经在数组中拥有该时间值,或者您是否希望这样的输出来自日期函数?
答案 7 :(得分:0)
如果您不确定如何格式化日期,则应使用strtotime函数,否则如果格式为yyyy-mmm-dd或yy-m-d则可能很容易。
$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];