【问题标题】:Extract hour and minute from date function从日期函数中提取小时和分钟
【发布时间】:2020-02-13 12:30:37
【问题描述】:

我想将从数据库中提取的时间变量作为 jQuery 中的日期函数传递,并希望从中提取小时和分钟,并将其存储在 javascript 变量中。

var time="<?php echo $row['time']; ?>";
var time=new Date(time);
var hrs=time.getHours();
var min=time.getMinutes();

请检查此代码是否有任何错误。

【问题讨论】:

标签: javascript php jquery date


【解决方案1】:

如果没有更多的知识,我无法真正给你答案。 但是您很可能期待一个日期对象,而实际上您的数据库正在返回其他东西。

(可能是一个字符串?,一个数字?)

确保您的“时间”变量中准确存储了什么类型的数据。将是我的建议,因为我没有在代码中看到错误。一定是逻辑

真的希望这会有所帮助,但更深入地了解您的数据库正在做什么将有助于获得明确的答案:)

祝你好运!

【讨论】:

  • 这是一个时间戳变量。它存储为 9:30:00。我想将此数据存储为 javascript 变量,并传递给 javascript 中的日期函数。稍后,我只需要从中提取小时和分钟并打印为 9:30。
  • 在 JavaScript 中,时间戳是自 1970 年 1 月 1 日以来经过的毫秒数...过去几个月我一直在研究自制日历,所以我有点研究日期对象的Javascript。我会在单独的答案中发布它,以便其他人也可以找到它^^
【解决方案2】:

你可以在 Stackoverflow 上找到答案,或者阅读日期对象上的 docs

不过,这里有一个你可能会喜欢的答案

var myMinutes = 1; // This represent 1 minute subtraction
var myHours   = 60; // This represent 60 minutes subtraction which is 1 hour
var dateMSubObject= new Date(oldDateObject.getTime() - myMinutes*60000); //Substracting your minutes variable
var dateHSubObject= new Date(oldDateObject.getTime() - myHours*60000); //Substracting your hours variable

为了使其更易于管理,您也可以在 24 小时内进行这样的工作

var myHours   = 60*24; // This represent 24 hours subtraction

您还可以将上述代码设为一个函数,该函数将采用单位、类型等参数并从中返回您想要的结果

60000 部分是毫秒,代表 1 分钟。

欢迎来到 StackOverflow,如果您花一些时间浏览该网站,您将很快能够找到最常见的问题,通常随后会有很好的答案:)

【讨论】:

    【解决方案3】:

    这是为我做的:

    let jsdate = new Date(unixtimestamp+1000);
    

    使用示例:

    let a = new Date();
    console.log("a ="+a)
    
    let stamp = a.getTime()
    console.log("stamp ="+stamp) // timestamp
    
    let newTimeObj = new Date(stamp*1000)
    console.log("newTimeObj :::::::"+newTimeObj)
    

    输出::::

    【讨论】:

    • 如果我对任何人有任何帮助,我会感激不尽。我还是新来的,我非常努力地获得一些声誉点
    • 只是一个提示。您不必将控制台中的结果连接为字符串。分离它更简单。喜欢console.log("a =", a)。通过这种方式,您实际上可以调查输出的对象,而不是那些被字符串化的对象。还尝试从代码中创建一个 sn-p,以便人们可以运行它并自己查看内联结果。最后评论你的步骤..比如“我为什么要加 1000”?
    • 哇,谢谢你,我不知道我可以这样记录结果!我以为我发布的内容已经被剪掉了,但我会查一下,非常感谢您的反馈!另外,是的,我明白了,人们应该了解我在做什么,因为这是一个帮助平台。非常感谢您的反馈,非常感谢
    【解决方案4】:

    您需要将来自 PHP 代码的 UNIX 时间戳(以秒为单位)转换为 毫秒,然后将其作为 参数传递Date object

    考虑以下 JavaScript 中的示例:

    //UNIX Timestamp from your PHP code
    let timeInUNIXTimeStamp = "1581653281"; 
    
    // Create a new JavaScript Date object based on the timestamp
    // Multiplied by 1000 to convert it into milliseconds, from seconds, as Date object works in milliseconds
    var date = new Date(timeInUNIXTimeStamp * 1000);
    
    // Get Hours part from the timestamp
    var hours = date.getHours();
    
    // Get Minutes part from the timestamp
    var minutes = "0" + date.getMinutes();
    
    
    
    // Will display time in H:M format
    var timeInHMSFormat = hours + ':' + minutes.substr(-2);
    
    console.log(timeInHMSFormat);

    您也可以在 PHP 中实现相同的功能,您需要使用 date() 函数将 UNIX 时间戳转换为 H:M 格式,其中第一个参数是您想要的格式,第二个参数是您的 UNIX Timestamp

    示例:date("h:i", 1581653281);
    其中 h 是小时,采用 12 小时格式
    i 是分钟

    阅读PHP的 data()函数Date function in php

    考虑 PHP 下面的代码,在您的 JavaScript 中:

       var time="<?php echo date('h:i', $row['time']); ?>";
    
       //Now Split the above string into array
       var timeArray = time.split(":");
    
       var hours = timeArray[0];
       var minutes = timeArray[1];
    



    有关更多详细信息,请参阅此答案Convert UNIX Timestamp

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多