使用sprintf格式转换DateTime使用的字符串



我试图找出一种方法,如何采取一个字符串,并能够在DateTime使用它。下面是一个例子(由于参数不正确,显然给出了一个错误):

$string = sprintf('strtotime("second monday of october", mktime(0, 0, 0, 10, 1, %d))', 2014);
$date = DateTime::createFromFormat('Y-m-d', $string);
echo $date->format('Y-m-d');

我想要实现这一点的原因是能够让年份由其他因素决定,这取决于它在我的类中的位置:这意味着$string将在飞行中创建,并将在以后用于输出日期。我的问题是,是否有替代方案,或者只是不可能,年份必须预先确定。

如果你想获得动态年份的第二个十月,试着这样做:

$my_year = 2014;
$string = strtotime(sprintf('second monday of october %d', $my_year));
并使用$string获取格式化日期

最新更新