【问题标题】:Converting string from .csv file into date object in Javascript在Javascript中将字符串从.csv文件转换为日期对象
【发布时间】:2017-11-09 18:00:07
【问题描述】:

我正在构建一个函数,该函数将从 .csv 文件中读取并使用 ajax 构建一个表。就构建表格而言,我的功能运行良好。其中一列有日期/时间。我正在尝试将日期的字符串版本转换为日期对象,以便我可以将表中的小时与当前小时进行比较,并在 tableHour 不在最后 2 个 currentHour 内时设置错误标志。

我从这里和其他网站尝试了很多不同的建议,但似乎没有任何效果。

任何建议将不胜感激。

        if (cell_count === 9){

            // cell_data[9] is the column from the .csv file that contains the date string
            var tableDate = moment(cell_data[9], 'MM-DD-YYYY hh:mm:ss')    
            var date = new Date(tableDate);
            var tableHour = date.getHours();

            var currentDate = new Date();
            var currentHour = currentDate.getHours();

            // convert to local time                
            tableHour += 8;
            if (tableHour > 23)
                tableHour -= 24;

            // 2 hour window                
            currentHour -= 2;                                                                
            if (currentHour < 0)
                currentHour += 24;

            // flag to true if table < current                
            if (tableHour < currentHour)
                error = true;
        }

我的代码的其余部分工作正常,只是构建表格并将表格返回到 HTML 文档。正是这个功能引起了我的问题。

就像现在的代码一样,它返回的只是一个充满“NaN”的表,我假设这意味着我试图创建的日期对象是无效的。

【问题讨论】:

  • 在使Date 对象返回之前,console.log(tableDate) 是什么?
  • 在 html 页面上,当我将 console.log(tableDate) 放入实际构建表格的函数中时,它只是显示为“未定义”

标签: javascript html csv


【解决方案1】:

我知道我的问题是什么...我在 moment() 函数调用中使用的格式与 .csv 文件中的格式不同。愚蠢的错误……哎呀。

但是如果有人感兴趣,上面的代码可以比较从 csv 文件到当前时间的时间(如果你确保你在 csv 文件和 moment() 函数调用中具有相同的格式。)

【讨论】:

    猜你喜欢
    • 2011-03-07
    • 2015-01-08
    • 2022-07-20
    • 1970-01-01
    • 2020-05-21
    • 2020-11-30
    • 1970-01-01
    • 2021-07-11
    相关资源
    最近更新 更多