当前位置: 首页 > 知识库问答 >
问题:

碳::现在()给出错误的数据

隗锐进
2023-03-14

我在Laravel与Carbon合作。

问题:我需要使用carbon::now()制作一个碳日期-

下面是我的功能

function findStartEndDateOfAMonth($month, $year)
{
    //Here $month = 2, $year = 2021
    $days_in_month = cal_days_in_month(CAL_GREGORIAN, $month, $year);
    $start_time    = Carbon::now()->year($year)->month($month)->day(1)->hour(0)->minute(0)->second(0);

    $end_time      = Carbon::now()->year($year)->month($month)->day($days_in_month)->hour(23)->minute(59)->second(59);
    return [
      'start_time'    => $start_time,
      'end_time'      => $end_time,
      'days_in_month' => $days_in_month
    ];
} 

以下是输出:

{
  "code": 200,
  "message": "Successful",
  "time": {
   "start": {
      "date": "2021-03-01 00:00:00.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    },
    "end": {
      "date": "2021-03-28 23:59:59.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    }
  }
}

类似的结果是给三月(当我给$月=3)

{
  "code": 200,
  "message": "Successful",
  "time": {
   "start": {
      "date": "2021-03-01 00:00:00.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    },
    "end": {
      "date": "2021-03-31 23:59:59.000000",
      "timezone_type": 3,
      "timezone": "Asia/Dhaka"
    }
  }
}

我不明白这里的问题。

提前谢谢。

共有1个答案

宗烨赫
2023-03-14
Carbon::now()->year($year)->month($month)->day(1)->hour(0)->minute(0)->second(0);

是错误的,因为它首先更改年/月,然后才更改其余部分,这样它就可以溢出。

第一个快速解决方法是:

Carbon::now()->day(1)->year($year)->month($month)->hour(0)->minute(0)->second(0);

但不应将日期更改6次,而应使用setDateTime一次修改所有日期:

Carbon::now()->setDateTime($year, $month, 1, 0, 0, 0);

最后一个问题是:如果您使用now()更改所有值,那么为什么不简单地create这样您就不会发生任何变异?

Carbon::create($year, $month, 1, 0, 0, 0);

为了记录在案,您可以使用$start_time-

 类似资料:
  • #这是我试图在我的电脑上运行的python代码,但它是Thowrsero,但我没有找到错误的图像回溯(最近的一次调用):文件“c:/Users/user/Desktop/projetcs/machine learning/mc1.py”,第4行,df=df['Adj.Open'、'Adj.High'、'Adj.Low'、'Adj.Close'、'Adj.Volume']]文件“c:\Users\u

  • 问题内容: 我正在使用Python编写一些加密算法,但是我以前从未使用过Python。 首先,看一下这段代码,然后我将解释这个问题, x和y的值为, 我不明白代码的第三行。为了理解第三行,我不得不研究函数,我遇到了这个问题, zip函数帮助元组 根据这个问题的答案,代码, 将输出, 但是当我尝试打印时, 我得到这个输出, 为什么我的输出与原始输出不同? 问题答案: 在Python 3中返回一个迭代

  • 我把数据放如下: 因此,每当我查询terms facet时,它都会给出正确的结果,下面是我的Elasticsearch查询: 但是,当我将filter添加到Facet时,它不会显示任何Facet计数,以下是查询: 我得到的结果如下 所以,任何人都知道为什么它会给出这样的计数。

  • 问题内容: 我想从字符串中删除最后一次出现的“ \”这个特殊字符。我尝试了像这样的字符串函数 但是每次遇到错误时,我都要求加一个额外的报价。同时我发现(“ \”“)用来传递”这个特殊字符。我该如何进行? 问题答案: 您需要使用 字符串中的字符转义特殊字符(依此类推)。因此,在它们之前使用a 会使它成为 文字 ,这意味着java会将其后的内容视为常规字符。 你可以测试看看 将打印。它会打印。 所以:

  • 问题内容: 我的编码是 错误是 问题答案: NLTK中的MaltParserAPI仅有一个修补程序,该修补程序修复并稳定了其以前存在的问题: 这是如何在NLTK中使用MaltParser API的示例: (参见这里更多的演示代码或这里的比较详细的演示代码) 请注意,您还可以使用导出功能,并且可以在初始化对象时避免使用完整路径。但是您仍然必须告诉对象要查找的解析器目录的名称和模型文件名,例如

  • 错误:任务“:app:CompileFlutterBuildDebug”执行失败。 进程“command”d:\flutter\bin\flutter.bat“已完成,退出值为非零%1 > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得完整的见解。