테스트 사이트 - 개발 중인 베타 버전입니다

랜덤 설정에서 7로 안나오고 07로 나오게 하는 방법 채택완료

    $time_change = rand(substr(G5_TIME_YMDHIS, 14, 2),59);     $time_change = substr_replace(G5_TIME_YMDHIS, $time_change, 14, 2);     echo ' time_change '.$time_change.' ';

 

위 처럼 시간에서 분에 해당하는 부분만 랜덤으로 나오게 했습니다.

문제는 01분을 경우  01~59 사이에 랜덤 숫자가 나오는데 

7의 경우 07로 나오지 않으니

 

2021-12-23 02:07:52 -> 원하는 표현식 2021-12-23 02:7:52 -> 잘못 나오는 표현식

 

위와 같이 되는 문제가 있는데 숫자를 항상 2자리로 표현하는 방법이 있을까요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

$time_change = rand(substr(G5_TIME_YMDHIS, 14, 2),59); $time_change = substr_replace(G5_TIME_YMDHIS, $time_change, 14, 2); $time_change = str_pad($time_change, 2, '0', STR_PAD_LEFT); echo ' time_change '.$time_change.' ';

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

다른분들도 다른 방법을 알려주셨는데, 혹시 성능차는 별차이 없을까요?
성능에 있어.. 별 차이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변이 있으니 참고로 다른 내용 추가합니다. 이해 후 응용&활용하기 나름….

</p>

<p>sscanf($write_time, '%04d-%02d-%02d %02d:%02d:%02d', $y, $m, $d, $h, $i, $s);

$write_time = sprintf('%04d-%02d-%02d %02d:%02d:%02d', $y, $m, $d, $h, mt_rand(0, 59), $s);</p>

<p>

+ sscanf()

- https://www.php.net/manual/en/function.sscanf.php

 

+ sprintf()

- https://www.php.net/manual/en/function.sprintf.php

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

    $time_change = sprintf("%02d", rand(substr(G5_TIME_YMDHIS, 14, 2),59));  

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록