如何在下拉列表中获取所有日期,月份和年份?

AAA*_*AAA 1 php calendar

是否有类或PHP脚本将在所有日期,月份和年份的下拉字段中回显.我需要将它们用于出生日期.我用Google搜索,但没有提出我可以实施或学习的内容.有任何想法吗?谢谢

dru*_*dge 14

如果你真的只想在PHP中完成它,这是一个简单的开始:

<?php
    // lowest year wanted
    $cutoff = 1910;

    // current year
    $now = date('Y');

    // build years menu
    echo '<select name="year">' . PHP_EOL;
    for ($y=$now; $y>=$cutoff; $y--) {
        echo '  <option value="' . $y . '">' . $y . '</option>' . PHP_EOL;
    }
    echo '</select>' . PHP_EOL;

    // build months menu
    echo '<select name="month">' . PHP_EOL;
    for ($m=1; $m<=12; $m++) {
        echo '  <option value="' . $m . '">' . date('M', mktime(0,0,0,$m)) . '</option>' . PHP_EOL;
    }
    echo '</select>' . PHP_EOL;

    // build days menu
    echo '<select name="day">' . PHP_EOL;
    for ($d=1; $d<=31; $d++) {
        echo '  <option value="' . $d . '">' . $d . '</option>' . PHP_EOL;
    }
    echo '</select>' . PHP_EOL;
?>
Run Code Online (Sandbox Code Playgroud)

另一种方法,类似的输出:(
年份将按升序排列,而不是降序)

<?php
    $build = array(
        array('year', '1910', date('Y'), 'Y'),
        array('month', '1', '12', 'M'),
        array('day', '1', '31', 'j')
    );
    $doc = new DOMDocument();
    foreach ($build as $item) {
        $menu = $doc->createElement('select');
        $menu->setAttribute('name', $item[0]);
        for ($x=$item[1]; $x<=$item[2]; $x++) {
            $b = $item[3];
            $opt = $doc->createElement('option');
            $opt->setAttribute('value', $x);
            $opt->nodeValue = date($item[3], mktime(0,0,0,($b=='M'?$x:1),($b=='j'?$x:1),($b=='Y'?$x:1)));
            $menu->appendChild($opt);
        }
        $doc->appendChild($menu);
    }
    echo $doc->saveHTML();
?>
Run Code Online (Sandbox Code Playgroud)


Pas*_*TIN 5

而不是使用三个不同的<select>,这不是一个非常用户友好的解决方案,为什么不使用一些基于Javascript的日历小部件?


例如,我已经多次听说过jQuery Datepicker - 效果要好得多,你不觉得:

        http://extern.pascal-martin.fr/so/5463037.png

(这只是我链接到的页面上的演示截图;有几个选项可以调整)