PHP 如何反转使用 DatePeriod() 生成的月份年份下拉菜单

发布于 2025-01-18 12:26:42 字数 608 浏览 0 评论 0原文

我生成了一个下拉菜单,如下所示:

$start    = new DateTime('2014-06-01');
$end      = new DateTime(date('Y-m-d'));
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

$select_mois = '<select name="select_mois" id="select_mois">';  
    
foreach ($period as $dt) {
    $select_mois.="<option value=" . $dt->format("m-Y") . ">" . strftime('%m.%Y', $dt->format('U')) . "</option>";
}        

$select_mois.='</select>';

它工作正常,但我在下拉菜单中首先得到较旧的日期(从 2014 年 6 月开始)

如何反转菜单以首先显示最近的日期?

感谢您的帮助

I have a dropdown menu generated as follow :

$start    = new DateTime('2014-06-01');
$end      = new DateTime(date('Y-m-d'));
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

$select_mois = '<select name="select_mois" id="select_mois">';  
    
foreach ($period as $dt) {
    $select_mois.="<option value=" . $dt->format("m-Y") . ">" . strftime('%m.%Y', $dt->format('U')) . "</option>";
}        

$select_mois.='</select>';

It works perfectly, but I get the older date first in my dropdown (Starting from 06.2014)

How do I reverse the menu to have the most recent date first ?

Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

救赎№ 2025-01-25 12:26:42

迭代并反向以数组的形式倒转;

同样,strftime现在是defeced

<?php 
$start    = new DateTime('2014-06-01');
$end      = new DateTime(date('Y-m-d'));
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

$select_mois = '<select name="select_mois" id="select_mois">';  

$period = array_reverse(iterator_to_array($period));
    
foreach ($period as $dt) {
    $select_mois.="<option value=" . $dt->format("m-Y") . ">" . $dt->format('m.Y') . "</option>";
}        

$select_mois.='</select>';

iterate and reverse over as an array;

also strftime is now deprecated

<?php 
$start    = new DateTime('2014-06-01');
$end      = new DateTime(date('Y-m-d'));
$interval = DateInterval::createFromDateString('1 month');
$period   = new DatePeriod($start, $interval, $end);

$select_mois = '<select name="select_mois" id="select_mois">';  

$period = array_reverse(iterator_to_array($period));
    
foreach ($period as $dt) {
    $select_mois.="<option value=" . $dt->format("m-Y") . ">" . $dt->format('m.Y') . "</option>";
}        

$select_mois.='</select>';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文