不使用正则表达式在PHP中处理日期
有没有办法更改日期不使用正则表达式在PHP中处理日期,php,time,Php,Time,有没有办法更改日期 1985-12-15 到 不使用正则表达式? <?php echo date('Y-m', strtotime('1985-12-15')); ?> 应该这样做 这将使用strotime将1985-12-15转换为unix时间戳。然后,date函数将使用第二个参数时间戳来格式化日期。 应该这样做 这将使用strotime将1985-12-15转换为unix时间戳。然后,date函数采用第二个参数时间戳来格式化日期。通过将日期转换为时间,然后使用以正确的日期
1985-12-15
到
不使用正则表达式?
<?php echo date('Y-m', strtotime('1985-12-15')); ?>
应该这样做
这将使用strotime将1985-12-15转换为unix时间戳。然后,date函数将使用第二个参数时间戳来格式化日期。
应该这样做
这将使用strotime将1985-12-15转换为unix时间戳。然后,date函数采用第二个参数时间戳来格式化日期。通过将日期转换为时间,然后使用以正确的日期格式输出,如下所示:
<?php
echo date('Y-m', strtotime('1985-12-15'));
通过将日期转换为时间,然后使用以正确的日期格式输出,如下所示:
<?php
echo date('Y-m', strtotime('1985-12-15'));
最好不要substr($date,0,strrpos($date,'-')代码>
这将是最便宜的?最好不要substr($date,0,strrpos($date,'-'))代码>
那会是最便宜的吗?也许我很愚蠢,但是如果你只想把日期的开头存储为一个字符串,你就不能用它来提取该字符串开头的7个字符吗
有点像这样,例如:
$input = '1985-12-15';
$output = substr($input, 0, 7);
var_dump($output);
这给了你:
string '1985-12' (length=7)
在本例中,不需要任何与日期操作相关的函数,而且这可能比将字符串解析为日期等更快/更便宜
(是的,我知道,过早优化^^)也许我很愚蠢,但如果你只想把日期的开头存储为一个字符串,你就不能用它来提取该字符串开头的7个字符吗
有点像这样,例如:
$input = '1985-12-15';
$output = substr($input, 0, 7);
var_dump($output);
这给了你:
string '1985-12' (length=7)
在本例中,不需要任何与日期操作相关的函数,而且这可能比将字符串解析为日期等更快/更便宜
(是的,我知道,过早优化^^)如果你认为正则表达式不“便宜”,那么时间函数几乎肯定会更贵:你需要将字符串转换为时间值,然后将其重新格式化为字符串…如果你认为正则表达式不“便宜”,那么时间函数几乎肯定会更加昂贵:您需要将字符串转换为时间值,然后将其重新格式化为字符串…数组中是否已经存在该时间值,或者日期函数中是否存在类似的输出?数组中是否已经存在该时间值,或者日期函数中是否存在类似的输出?如果不确定日期的格式,您应该使用strotime函数,否则,如果格式是yyyy-mmm-dd或yy-m-d,那么它可能同样容易实现
$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];
如果不确定日期的格式,则应使用strotime函数,否则,如果格式为yyyy-mmm-dd或yy-m-d,则很容易实现
$datearray = explode('-',$date);
echo $datearray[0].'-'.$datearray[1];
Bugger,被6秒打败Bugger,被6秒打败seconds@noob52:注意——在本例中,问题是“该日期将存储为1985-01-01还是1985-1-1?”;我会使用第一种解决方案,我承认我没有考虑第二种解决方案。^^@noob52:注意到了——在这种情况下,问题是“该日期将存储为1985-01-01,还是1985-1-1?”;我会使用第一种解决方案,并且我承认我没有考虑第二种^^^道具来避免不必要的regexp.:-)尝试避免不必要的regexp的道具。:-)