如果给定的是月php,则获取日期

时间:2019-02-21 05:42:33

标签: php laravel-5.7

我不想使用日期选择器,因为我不需要年份,所以我创建了2个选择列表,其中我的第一个选择是月份,第二个选择是日期。

一切正常,它将保存在我的数据库中,但这是我的问题。我想显示月份的全名而不是数字。

示例:

Accounting Period

(Month list)   (Day list)
 0-12             1-31

场景:我选择oct作为月份,而5是我的一天。

value="10" Oct        value="5"   5

查看

Select Month List
    <select name="accounting_period_month">'+
      '<option value="01">January</option>'+
      '<option value="02">February</option>'+
      '<option value="03">March</option>'+
      '<option value="04">April</option>'+
      '<option value="05">May</option>'+
      '<option value="06">June</option>'+
      '<option value="07">July</option>'+
      '<option value="08">August</option>'+
      '<option value="09">September</option>'+
      '<option value="10">October</option>'+
      '<option value="11">November</option>'+
      '<option value="12">December</option>'+
    '</select>

它将另存为10和5。

查看显示月份列表

{{ date('M',strtotime($company_details->accounting_period_month))}}

注意:不要介意'+ ,因为我将其附加到了我的jquery中。

现在我的问题是如何显示单词Oct而不是10?

5 个答案:

答案 0 :(得分:1)

$monthNum  = 3;
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F'); // March

对于旧版本的PHP

$monthNum  = 3;
$monthName = date('F', mktime(0, 0, 0, $monthNum, 10)); // March

如果只需要3个字母月的名称,例如Mar,则可以将F更改为M。所有可用格式选项的列表都可以在PHP manual documentation中找到。

答案 1 :(得分:1)

使用Carbon

{{ Carbon\Carbon::createFromDate(2019,$company_details->accounting_period_month,01)->format('M') }}

答案 2 :(得分:1)

这是从给定数字打印月份的多种方法。

1。 date()函数以及参数“ F”

代码示例:

$month_num = 10;
echo date("F", mktime(0, 0, 0, $month_num, 10)); //output: October

2。通过使用createFromFormat()

创建php日期对象

代码示例

$dateObj   = DateTime::createFromFormat('!m', $monthNum);
echo "month name: ".$dateObj->format('F'); // Output: October

3。 strtotime()函数

echo date("F", strtotime('00-'.$monthNum.'-01')); // Output: October

4。 mktime()函数

echo date("F", mktime(null, null, null, $monthNum)); // Output: October

5。通过使用jdmonthname()

$jd=gregoriantojd($monthNum,10,2019);
echo jdmonthname($jd,0); // Output: Oct

答案 3 :(得分:0)

由于您的问题中有Laravel标签:

$data = YourModel::select('*')
    ->addSelect(DB::raw('MONTHNAME(accounting_period_month) AS month_name')
    ->get();

print_r($data);
  

请参阅@Karol Samborski的评论,

我不明白下面的陈述是什么问题

{{ date('M',strtotime($company_details->accounting_period_month))}}

答案 4 :(得分:-2)

尝试此代码。

创建一个数组并定义整个月份。

此处为javascript代码。

<script type="text/javascript">
    var i = 10;
    var month = ["jan", "feb", "march", "april", "may", "jun", "july","aug", 
                 "sep","oct","nov","dec"];
    console.log(month[i-1])

</script>

Php的代码

<?php 
   $i = 10;
   $month = array("jan", "feb", "march", "april", "may", "jun", 
                   "july","aug", "sep","oct","nov","dec");
   echo $month[$i-1];
?>