有没有办法在没有前导空格的情况下使用`strftime`显示日期编号?

时间:2018-02-05 09:13:05

标签: php

根据to the documentationstrftime接受格式参数中的%e字符,该字符返回“当月的日期,,前面有一位数字”。

因此,如果我使用它来显示本地化日期,我会得到两个不同的结果,如果我在月初或月末:

echo strftime('%A %e %B' . PHP_EOL);
// Displays: Monday  5 February

echo strftime('%A %e %B' . PHP_EOL, time() + 400000);
// Displays: Saturday 10 February

这很烦人,有点奇怪。我不知道为什么这个空间在这里(历史原因?),我没有看到任何有用的情况。但这不是真正的问题。

有没有办法使用strftime显示天数而没有前导空格(并且没有前导零)?

3 个答案:

答案 0 :(得分:2)

“暴力”方法总是一个选择:

echo strftime('%A '), trim(strftime('%e')), strftime(' %B'), PHP_EOL;

答案 1 :(得分:1)

您也可以使用str_replace()

echo str_replace('  ', ' ', strftime('%A %e %B' . PHP_EOL));

答案 2 :(得分:0)

在Linux(尽管不是Windows)上,C的strftime(可能与PHP相同)需要使用-来删除填充,即以下方法可能有效:

echo strftime('%A %-e %B' . PHP_EOL);