php - mktime还是strtotime?

时间:2010-02-09 02:29:13

标签: php strtotime mktime

我正在努力将2010-02转换为2010年2月。但是,我一直在1969年12月

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

这是我最近尝试过的......

$path_title = date('F, Y', mktime(0,0,0,2,0,2010));

2 个答案:

答案 0 :(得分:8)

这是一种方法:

$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的内容。

答案 1 :(得分:0)

试试这个:

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

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