从字符串中提取日期和时间



我有一个日期\时间字符串:

2013年2月8日星期五09:47:57 GMT+0530(IST)

我需要提取日期(2013年8月2日)和时间(上午09:47)部分,并将它们存储在两个变量中。

有没有一种使用JavaScript的有效方法?

我已经写了以下代码:

var day = elementDate.getDate(); //Date of the month: 2 in our example
            var monthNo = elementDate.getMonth(); //Month of the Year: 0-based index, so 1 in our example
            var monthDesc = {'0':'January', '1':'February'}; //, "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
            var year = elementDate.getFullYear() //Year: 2013
            var hours = elementDate.getHours();
            var mins = elementDate.getMinutes();
            var lDateValue = (year.toString() + "-" + monthNo.toString() + "-" + day.toString());
document.getElementById("lDate").value = lDateValue;

我的HTML:中有这个

<input type="date" name="name" id="lDate" class="custom" value=""/>
                <input type="time" name="name" id="lTime" class="custom" value=""  />

字段未更新。我是不是错过了什么?

日期构造函数非常擅长从字符串创建日期:

使用以下内容:

// This could be any Date String
var str = "Fri Feb 08 2013 09:47:57 GMT +0530 (IST)";
var date = new Date(str);

这将允许您访问所有日期功能(MDN)

例如:

var day = date.getDate(); //Date of the month: 2 in our example
var month = date.getMonth(); //Month of the Year: 0-based index, so 1 in our example
var year = date.getFullYear() //Year: 2013

您可以在.toLocaleDateString()和.toTimeString()方法的帮助下使用date构造函数直接获取日期和时间字符串,如下所示-

let dateStr =new Date("Wed Aug 05 18:11:48 UTC 2020")
dateStr.toLocaleDateString()
// "05/08/2020"
dateStr.toTimeString()
// "23:41:48 GMT+0530 (India Standard Time)"

转换为ISO字符串并拆分为"T"

不确定您分别对日期和时间做了什么。但是,如果您打算将它们存储在数据库中,最好将其存储在UTC时区和ISO格式(例如2013-02-0809:47:57)。

要获得这种格式的日期和时间,您可以执行以下操作:

const dateTimeInParts = yourDateTime.toISOString().split( "T" ); // DateTime object => "2021-08-31T15:15:41.886Z" => [ "2021-08-31", "15:15:41.886Z" ]
const date = dateTimeInParts[ 0 ]; // "2021-08-31"
const time = dateTimeInParts[ 1 ]; // "15:15:41.886Z"

我认为这种格式的日期很好,但你可能也想去掉毫秒和"Z";从那时起,这取决于您将在哪里以及如何使用它。

相关内容

  • 没有找到相关文章

最新更新