Я никогда не использовал эти функции раньше, но после многого прочитал про sprintf (), я решил, что должен это узнать.
Поэтому я пошел вперед и сделал следующее.
function currentDateTime() { list($micro, $Unixtime) = explode(" ",microtime()); $sec= $micro + date("s", $Unixtime); $sec = mb_ereg_replace(sprintf('%d', $sec), "", ($micro + date("s", $Unixtime))); return date("Ymd H:i:s", $Unixtime).$sec; } sprintf(currentDateTime());
Он ничего не печатает. С другой стороны, с помощью функции printf ():
printf(currentDateTime());
Он печатает результат просто отлично. Итак, какова разница между этими двумя функциями и как правильно использовать функцию sprintf ()?
sprintf()
возвращает строку, printf()
отображает ее.
Следующие два равны:
printf(currentDateTime()); print sprintf(currentDateTime());
sprintf()
выводит результат на строку. printf()
выводит его на стандартный вывод, т.е.:
printf(currentDateTime());
эквивалентно:
echo sprintf(currentDateTime());
sprintf () возвращает строку, в то время как printf () выводит строку. Поэтому вам нужно будет сделать что-то вроде следующего:
function currentDateTime() { list($micro, $Unixtime) = explode(" ",microtime()); $sec= $micro + date("s", $Unixtime); $sec = mb_ereg_replace(sprintf('%d', $sec), "", ($micro + date("s", $Unixtime))); return date("Ymd H:i:s", $Unixtime).$sec; } $output = sprintf(currentDateTime()); printf($output);