【问题标题】:Get timestamp of week returns NaN获取一周的时间戳返回 NaN
【发布时间】:2019-06-26 19:09:33
【问题描述】:

我正在尝试获取一周的时间戳,从星期一开始,类似于此 C# 脚本:

DateTime now = DateTime.UtcNow;
now = DateTime.UtcNow.StartOfWeek(DayOfWeek.Monday);
int weekday = (int)(now.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

返回:1548633600

在 javascript 中尝试此操作时出现 NaN 错误:

var d = new Date();
var w = Date.UTC(thisYear, thisMonth, d.setDate(d.getDate() - (d.getDay() || 7) + 1), 0, 0, 0, 0);
var weekDay = Math.floor(w / 1000);

不知道我做错了什么。希望得到帮助:-)

【问题讨论】:

  • 使用new Date().getTime() / 1000?
  • 如果您至少尝试调试代码,那将是显而易见的原因 ... w 是 NaN 为什么?因为将d.setDate(d.getDate() - (d.getDay() || 7) + 1) 的结果作为一天

标签: javascript c# timestamp nan


【解决方案1】:

var d = new Date();
var day = d.getUTCDay();

var utcTime = Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() - day + 1);
var weekDay = utcTime / 1000;

console.log(weekDay);

【讨论】:

    【解决方案2】:

    试试这个方法:这返回星期五,更新它以获得星期一

    var t = new Date().getDate() + (6 - new Date().getDay() - 1) - 7 ;
    var d = new Date();
    d.setDate(t);
    var lastFriday = d;
    console.log(lastFriday);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      相关资源
      最近更新 更多