【问题标题】:Substracting the n value in date()减去 date() 中的 n 值
【发布时间】:2014-03-21 02:05:38
【问题描述】:

我想实现一个 Javascript 倒数计时器,它的月份值减去 1。

要通过 PHP 动态获取日期,我使用以下代码:

$date = "2014:3:19 00:00:00";
$newDate = date("Y, n, j, H, i", strtotime($date));

返回:

2014, 3, 9, 00

我的问题是如何将值 n 减去 1,所以最终输出将始终是这样的:

2014, (3-1), 9, 00

【问题讨论】:

  • 你想要输出 (n-1) 还是 (n-1) 的结果?
  • 嗨 Jason,我想要 n-1 的结果

标签: php date date-math


【解决方案1】:

这是DateTime() 的方法(我使用破折号而不是冒号,因为这是日期部分的正确分隔符):

$date = "2014-3-19 00:00:00";
$date = (new DateTime($date))->modify('-1 month')->format("Y, n, j, H, i");

$date = "2014-3-19 00:00:00";
$date = (new DateTime($date))->diff(new DateInterval('P1M'))->format("Y, n, j, H, i");

【讨论】:

    【解决方案2】:

    如果你的意思是减去一个月,那么你可以这样做:

    $date = "2014-3-19 00:00:00";
    $newDate = date("Y, n, j, H, i", strtotime('-1 month', strtotime($date)));
    

    2014, 1, 19, 00 将是2013, 12, 19, 00,但不是2014, 0, 19, 00


    更新:

    您想将日期传递给 jQuery 插件 (jquery.magicbusmultimedia.net)。

    插件只要求你传递一个 javascript Date 对象。

    所以你可以这样做:

    $('#myCounter').mbComingsoon(new Date(<?php echo strtotime($date); ?> * 1000));
    

    【讨论】:

    • 嗯如何获得结果 2014, 0, 19, 00,而不是 2013, 12, 19, 00 ?
    • @zoora 没有零月份
    • @zoora 你能先告诉我为什么你想要零月吗?
    • @John 没错,但是我使用的 javascript 倒计时代码要求我输入减去 -1 的月份值 :( 它是 jquery.magicbusmultimedia.net
    • @zoora 正如我所料,javascript 日期问题。那么,你不应该用php做,只用javascript做,我什至认为你不必在php中格式化日期。
    【解决方案3】:

    $date = "2014-3-19 00:00:00"; $newDate = date("Y, n, j, H, i", strtotime('-1 月', strtotime($date))); 2014, 1, 19, 00 将是 2013, 12, 19, 00 但不是 2014, 0, 19, 00。

    【讨论】:

      猜你喜欢
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      相关资源
      最近更新 更多