我正在尝试将2010-02转换为2010年2月。但是,我一直在1969年12月获得

我尝试使用MKTime,strtotime和两者的某些组合,但仍然无法做到...

这是我最近尝试的...

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));
有帮助吗?

解决方案

这将是一种做到这一点的方法:

$dateString = '2010-02';
list($year, $month) = explode('-', $dateString);
$timeStamp = mktime(0, 0, 0, $month, 1, $year);
echo date('F, Y', $timestamp);

另一种方法是:

$dateString = '2010-02';
$timestamp = strtotime($dateString . '-01');
echo date('F, Y', $timestamp);

strtotime 无法处理诸如“ 2010-02”之类的模棱两可的日期,但是如果您使其成为一个完整的日期,则应该有效。

否则,您可能想调查 DateTime::createFromFormat.

其他提示

尝试这个:

$str = '2010-02';
echo date('F, Y',mktime(0,0,0,substr($str,-2),1,substr($str,0,4)));

您必须确保使用有效值 mktime(). 。在您编辑为问题的示例中,您有 0 作为一天,这是一天的第一天,这会让您进入上个月。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top