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

问题描述 投票:0回答:5

我不想使用datepicker因为我不需要年份所以我创建了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?

php laravel-5.7
5个回答
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

1
投票

使用Carbon

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

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
投票

由于您的问题中有Laravel Tag:

$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))}}

-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];
?>
© www.soinside.com 2019 - 2024. All rights reserved.