有没有函数可以更优雅的实现给数字前面加0呢?比如
01
02
03
……
07
08
09
给<10的数字前面加0,然后取出来的时候再把0去掉,我主要存取用户的生日年份,取出来在按yyyymmdd这种格式截取,然后再去掉0就可以了,有没有什么函数一部到位的呀?
有没有函数可以更优雅的实现给数字前面加0呢?比如
01
02
03
……
07
08
09
给<10的数字前面加0,然后取出来的时候再把0去掉,我主要存取用户的生日年份,取出来在按yyyymmdd这种格式截取,然后再去掉0就可以了,有没有什么函数一部到位的呀?
'2'.replace(/^(\d)$/,'0$1')
'20160101'.replace(/(\d{4})(\d{4})/,function(a,b,c){return b + c.replace(/0/g,'')})
这样去零20161101和20160111结果一样!
自定义函数肯定可以做到,
如果是2010-1-1这种格式,想变成2010-01-01 完整可以用时间格式化函数格式化的结果可以是2010-1-1也可以是2010-01-01,完全取决于参数
如果是1想在前面加0,那么就用自定义函数吧
function addzero($value){
if ($value<10){
return '0'.$value;
}
return $value;
}
比如你有还有时间格式的string时间,先转换为date类型
再调用date_format格式化一下,如下:
//获取或创建时间
$date = date_create_from_format('Ymd','20160908');
//转换时间,第二个参数详见文档
$str = date_format($date,"Y-n-j");
//输出没有0的结果
echo $str;//2016-9-8
格式 | 说明 | 返回值例子 |
---|---|---|
j | 月份中的第几天,没有前导零 | 1 到 31 |
n | 数字表示的月份,没有前导零 | 1 到 12 |
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.8k 阅读✓ 已解决
4 回答13.2k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
5 回答7.7k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
http://www.w3school.com.cn/ph...
date('j');//一个月中的第几天,不带前导零(1 到 31)
date('d');//一个月中的第几天(从 01 到 31)
data('m');//月份的数字表示(从 01 到 12)
date('n');//月份的数字表示,不带前导零(1 到 12)
如果是数字前自动补0,可以用sprintf
$a = 1;
echo sprintf("%02d", $a);//输出该数字,若十位、个位为空或0,自动补零
$a = '01';
echo sprintf('%d', $a);//去0