【问题标题】:Get start date and last date of last week Javascript [duplicate]获取上周Javascript的开始日期和最后日期[重复]
【发布时间】:2012-07-11 11:03:01
【问题描述】:

可能重复:
Get first and last day of the week in JavaScript

任何机构都可以建议我如何通过将今天的日期提供给函数来获取上周的开始日期和结束日期吗?

【问题讨论】:

  • hsz@ 这是上周的,不是本周的
  • 好吧,只需使用该脚本并在日期上添加 -7。

标签: javascript


【解决方案1】:

下面是工作代码!希望这可以帮助任何人......!

    var d = new Date();
        var to = d.setTime(d.getTime() - (d.getDay() ? d.getDay() : 7) * 24 * 60 * 60 * 1000);
        var from = d.setTime(d.getTime() - 6 * 24 * 60 * 60 * 1000);
alert(to);
alert(from);

【讨论】:

    【解决方案2】:

    获取当月的最后一天:

    /**
     * Accepts either zero, one, or two parameters.
     *     If zero parameters: defaults to today's date
     *     If one parameter: Date object
     *     If two parameters: year, (zero-based) month
     */
    function getLastDay() {
        var year, month;
        var lastDay = new Date();
    
        if (arguments.length == 1) {
            lastDay = arguments[0];
        } else if (arguments.length > 0) {
            lastDay.setYear(arguments[0]);
            lastDay.setMonth(arguments[1]);
        }
    
        lastDay.setMonth(lastDay.getMonth() + 1);
        lastDay.setDate(0);
    
        return lastDay;
    }
    

    获取最后一个星期一:

    /**
     * Accepts same parameters as getLastDay()
     */
    function getLastMonday() {
        var lastMonday = getLastDay.apply(this, arguments);
        lastMonday.setDate(lastMonday.getDate() - (lastMonday.getDay() == 0 ? 6 : (lastMonday.getDay() - 1)));
        return lastMonday;
    }
    

    现在做你可以做的工作

    /**
     * Accepts one parameter: Date object.
     * Assumes start of week is Sunday.
     */
    function getWeek(d) {
        var jan1 = new Date(d.getFullYear(), 0, 1);
        return Math.ceil((((d - jan1) / (24 * 60 * 60 * 1000)) + jan1.getDay() + 1) / 7);
    }
    

    然后使用

    // Get the last week of this month:
    var lastWeekThisMonth = getWeek(getLastDay());
    Alert("lastWeekThisMonth: %s", lastWeekThisMonth);
    

    【讨论】:

      【解决方案3】:

      你可以使用Date.js

       Date.today().previous().monday()
      

      可能对你有用。

      【讨论】:

      • 我不想使用 date.js,还有其他替代方法吗?请指教
      猜你喜欢
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多