根据日期

时间:2017-03-07 18:57:44

标签: php arrays

根据当月的那一天,我一直在编写代码以显示一个月。

例如:

如果我们在实际月份的第1天和第10天之间,我想显示实际月份。 如果我们在实际月份的第10天之后,我想显示下个月。

所以,如果我们是 3月1日,我希望'3月'显示。

但如果我们是 3月22日,我想要'4月'来展示。

我希望用西班牙语显示月份。我已经通过以下代码完成了这项工作。

代码:

function date_es($format = 'F', $time = null){ 
    if(empty($time)) $time = time(); 

    $date = date($format, $time); 

    $mois_en = array("January","February","March","April","May","June","July","August","September","October","November","December"); 
    $mois_es = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); 

    $date = str_replace($mois_en, $mois_es, $date); 

    return $date; 
}  

但是,我不知道如何将条件语句包含在此代码中?

欢呼任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您需要获取每月的某一天 - 请使用j格式化选项。

在我看来,你的功能应该如下:

function date_es($format = 'F', $time = null){
    if(empty($time)) $time = time();

    // get day num
    $day_num = date('j', $time);

    // get month num
    $month_num = date('n',  $time);
    if ($day_num > 10) {
        // add 1 if day is more then 10
        $month_num += 1;
        // if your month is December, 
        // then `$month_num` is 13
        // but you don't need this)
        $month_num %= 12;
    }

    $mois_es = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");

    // return month name
    //I added `- 1` because keys in `$mois_es` start with zero
    return $mois_es[$month_num == 0? 11 : $month_num - 1];
}