繁体   English   中英

如果我设置与给定查询字符串参数相关的日期,我如何获得正确的星期几?

[英]How can I get the right day of the week, if I am setting the date in relation to the given query string parameters?

我在设置正确的星期几时遇到了一些问题,我正在使用与日历相关的查询字符串参数,并且我想将所选日期用于另一个很好的脚本,除了我无法设置正确的一天。 查询字符串参数采用以下格式:dd/mm/yyyy,根据这些数据,我也试图找到正确的日期。

    this.f = new Date();

    this.f.setDate = getUrlParameter('date').split("/")[0];
    this.f.setMonth = getUrlParameter('date').split("/")[1];
    this.f.setFullYear = getUrlParameter('date').split("/")[2];
    console.log(this.setMonth);

    this.days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
    this.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
    console.log(this.months[this.setMonth]);

您将日期对象的方法视为数据属性。 您需要将它们称为方法,例如

 function getUrlParameter() { return '12/04/2019'; } // Replace this with plain obj var obj = {}; obj.f = new Date(); // Call methods, don't assign to properties // The set* methods set values obj.f.setDate(getUrlParameter('date').split("/")[0]); // Subtract 1 from calendar month number as EMCScript months are zero based, April is 3 obj.f.setMonth(getUrlParameter('date').split("/")[1] - 1); obj.f.setFullYear(getUrlParameter('date').split("/")[2]); // The get* methods get values // Use getMonth to get the month console.log(obj.f.getMonth()); obj.days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; obj.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; console.log(obj.months[obj.f.getMonth()]);

但是,一次设置一个属性可能会导致错误,例如,如果月份是在 4 月创建的,而您尝试将日期设置为 5 月 31 日,当日期设置为 31 时,它将变为 5 月 1 日(因为没有 4 月 31 日) ) 所以你最终会得到一个 5 月 1 日而不是 5 月 31 日的日期。 所以一次性设置所有值:

 let obj = {f: new Date()}; // Get date parta let [day, month, year] = '31/05/2019'.split('/'); // Set values in one go obj.f.setFullYear(year, month - 1, day); console.log(obj.f.toLocaleDateString()); // But better to create the date with the right values // from the start let [day2, month2, year2] = '31/05/2019'.split('/'); let obj2 = {f: new Date(year2, month2 - 1, day2)}; console.log(obj2.f.toLocaleDateString());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM