gpt4 book ai didi

javascript - 为什么当我使用变量而不是整数或字符串时初始化日期对象会失败?

转载 作者:行者123 更新时间:2023-11-29 14:43:15 25 4
gpt4 key购买 nike

我正在尝试创建一个新的日期对象,该对象初始化为从另一个函数传入的日期。该程序不会提前知道所需的日期,但假设日期是 2017 年 1 月 1 日。

成功:

var newYear = new Date(2017, 0, 1);
Logger.log(newYear.toISOString());
//logs 2017-01-01T08:00:00.000Z

不成功:

var date = "2017, 0, 1";
var newYear = new Date(date);
Logger.log(newYear.toISOString());
//throws "Error, date range is invalid."

不成功:

var date = "2017-0-1";
var newYear = new Date(date);
Logger.log(newYear.toISOString());
//throws "Error, date range is invalid."

编辑:就在发布之前,我想通了。我希望没有人介意我发布和回答我自己的问题——也许你能回答得更好!

最佳答案

即使字符串看起来像一系列用逗号分隔的整数,即使 Javascript 是一种松散类型的语言,但它们并不相同。

解决方法:

var year = 2017;
var month = 0; //don't forget months go from 0-11
var day = 1;
var newYear = new Date(year, month, day);
Logger.log(newYear.toISOString());
//logs 2017-01-01T08:00:00.000Z

解析“2017-03-04”形式的日期:

var givenDate = "2017-3-04"
var date = givenDate.split("-");
var Year = date[0];
var Month = date[1]-1;
var Day = date[2];
var newYear = new Date(Year, Month, Day);
Logger.log(newYear.toISOString());
//logs 2017-01-01T08:00:00.000Z

注意:要在本地时区输出日期,而不是“toISOString()”,它将时间报告为 GMT/ISO 时间(在大多数浏览器上),您可以使用“toDateString()”输出更具可读性反射(reflect)您本地时区的表格。

关于javascript - 为什么当我使用变量而不是整数或字符串时初始化日期对象会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com