我正在尝试生成一个链接列表,每月一个,从当月开始,向后工作X个月.
我有一些大部分工作,除了它是"跳过"2013年2月.这是我现在拥有的截图:

以下是生成该列表的视图模板中的代码:
<?php for( $i = 1; $i <= 8; $i++ ): ?>
<li>
<?php $prior_time = strtotime( "-$i month" ); ?>
<?php $month = date( 'm', $prior_time ); ?>
<?php $year = date( 'Y', $prior_time ); ?>
<?php $day = date( 't', mktime( 0, 0, 0, $month, 1, $year ) ); ?>
<?php $prior_month_string = date( 'F', $prior_time ); ?>
<?php $prior_month_from = date( 'm/01/Y', $prior_time ); ?>
<?php $prior_month_to = date( "m/$day/Y", $prior_time ); ?>
<?php if( date( 'F', strtotime( $selected_from ) ) == $prior_month_string ): ?>
<?php echo $prior_month_string; ?>
<?php else: ?>
<a href='/claims?<?php echo "from=$prior_month_from&to=$prior_month_to"; ?>'
data-from='<?php echo $prior_month_from; ?>'
data-to='<?php echo $prior_month_to; ?>'>
<?php echo $prior_month_string; ?>
</a>
<?php endif; ?>
</li>
<?php endfor; ?>
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我将for循环延伸到最后$i <= 18,它会显示2012年2月.但出于某种原因,当试图显示2013年2月时,它显示另一个2013年3月(上面的屏幕截图中显示的问题示例).
好像问题在这里:
$prior_time = strtotime( "-$i month" );
Run Code Online (Sandbox Code Playgroud)
但是,我不知道为什么以及如何绕过它.为什么这个算法会在2013年3月而不是2013年2月吐出,我怎样才能解决这个奇怪的问题?
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |