gpt4 book ai didi

javascript - 变量读数中的日期为 "Invalid Date"

转载 作者:行者123 更新时间:2023-11-30 15:09:39 25 4
gpt4 key购买 nike

使用以下内容:

var timestart = $('.thisDiv').data("timestart");
var startDateTime = new Date(timestart);

从 ajax 更新的 php 文件中收集日期:

$TimeStart = date( 'Y,m,d,g,i', $TimeStart );

<div class="thisDiv" data-timestart="<?= $TimeStart ?>"></div>

var timestart = $('.thisDiv').data("timestart");

在控制台中,我在记录 timestartstartDateTime 时得到以下信息:

2017,07,24,7,50
Invalid Date

如果我粘贴输出的日期如下

var startDateTime = new Date(2017,07,24,7,50);

然后它工作正常。我收到无效日期的任何想法?

最佳答案

您的 timestart 变量 (JavaScript) 只是一个字符串。所以它是一个字符串 2017,07,24,7,50,而不是按顺序排列的那些元素 - 不能像 new Date() 期望的那样用作单独的参数.

一起来看看吧!

var startDateTime = new Date(2017,07,24,7,50);   // Parameters in order - all OK!
var startDateTime = new Date("2017,07,24,7,50"); // A single string - single parameter, not OK!

您需要使用在 JavaScript 中有效的格式从 PHP 返回正确的日期格式。根据 ECMAScript 标准,适用于所有浏览器的有效格式是 YYYY-MM-DDTHH:mm:ss.sssZ(请参阅底部的引用)。要从 PHP 定义它,您需要将其格式化

$TimeStart = date('c', $TimeStart);

这将返回诸如 2017-07-24T21:08:32+02:00 的格式。

或者,您可以使用 splat/spread-operator ... 并将字符串拆分为元素,我认为这是比上述方法更好的方法。

var timestart = $('.thisDiv').data("timestart");  // Get the string: "2017,07,24,7,50"
timestart = timestart.split(","); // Split into array
var startDateTime = new Date(...timestart); // Pass as arguments with splat-operator

关于javascript - 变量读数中的日期为 "Invalid Date",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45288158/

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