【问题标题】:php future date showing 1970-04-01 instead of 3 months after start datephp 未来日期显示 1970-04-01 而不是开始日期后 3 个月
【发布时间】:2016-07-06 19:08:26
【问题描述】:

我正在尝试确定一个日期并将其添加 3 个月以用于会计系统,我们需要将日期分成季度以进行纳税申报

我有以下代码

$e = ORM::for_table('sys_taxdate')->find_many();

这已使用列中的日期类型输入到数据库中,并正确显示为:

2016-07-02

然后我想在这个日期加上 3 个月,这样我就可以在数据库中搜索这两个日期之间提出的任何发票。我试过的代码是

    $idate = $e;
    $its = strtotime($idate);
    $dd = date('Y-m-d', strtotime('+3 months', $its));

但是 $dd 输出的日期是 1970-04-01

我查看了很多帖子,似乎 strtotime 没有以正确的日期格式开始,或者至少我是这么认为的,但我已经尝试了几个小时并且遇到了障碍

【问题讨论】:

  • Works for me。这意味着$e 不包含您认为的内容。
  • 如果我直接输出 $e 它会显示 2016-07-02
  • 如果你运行var_dump($e),除了string(10) "2016-07-02",你什么也得不到?
  • 抱歉,您是否尝试过输出变量 $its

标签: php mysql date strtotime


【解决方案1】:

我想通了。

我首先从数据库中得到了准确的结果

$e = ORM::for_table('sys_taxdate')->find_one(2);
$date = $e->get('taxdate');   


    $idate = $date;
    $its = strtotime($idate);
    $dd = date('Y-m-d', strtotime('+3 months', $its));

【讨论】:

    猜你喜欢
    • 2012-02-17
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多