是否有内置的JavaScript函数来处理时间字符串?

时间:2009-05-21 10:46:18

标签: javascript datetime

将“2009-05-02 00:00:00”等时间改为“2009-05-02”。

我知道我可以通过正则表达式实现这一点,但是有内置函数可以做到这一点吗?

3 个答案:

答案 0 :(得分:3)

没有内置的日期功能可以做到这一点。事实上,如果您使用该日期格式在JavaScript中创建新的Date对象,则会出现无效日期错误。

在这种情况下,使用正则表达式或字符串操作是正确的。

以下是所有JavaScript Date Functions的列表。

简单地获取字符串的日期部分并显示它而不转换为日期对象。你可以这样做:

var dateString = "2009-05-02 00:00:00"
alert(dateString.substring(0,10)); // Will show "2009-05-02"

要将此字符串转换为正确的JavaScript日期对象,您可以使用this snippet

function sqlTimeStampToDate(timestamp) {
    // This function parses SQL datetime string and returns a JavaScript Date object
    // The input has to be in this format: 2007-06-05 15:26:02
    var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
    var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
    return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
  }

格式为“ddd MMM dd YYYY hh:mm:ss”+ TimeOffSet,但您可以使用任何标准JavaScript日期函数。

答案 1 :(得分:0)

从初始格式“ 2009-05-02 00:00:”获取日期格式“ 2009-05-02 ”的两种简单方法见下文00 ”。

<script type="text/javascript">
var mydate, newdate1, newdate2;

mydate = "2009-05-02 00:00:00";

newdate1 = (mydate.split(/ /))[0];
alert('newdate 1: ' + newdate1);

newdate2 = mydate.substr(0,10);
alert('newdate 2: ' + newdate2);
</script>

答案 2 :(得分:0)

您可能会觉得这很有用:

  

返回今天的日期和时间
  如何使用Date()方法获取今天的日期。

     

getTime()
  使用getTime()计算自1970年以来的年份。

     

setFullYear()
  如何使用setFullYear()设置特定日期。

     

toUTCString()
  如何使用toUTCString()将今天的日期(根据UTC)转换为字符串。

     

getDay()
  使用getDay()和数组来编写工作日,而不仅仅是数字。

这是www.w3schools.com的复制粘贴,因为我无法发布链接...

或者只是在Google上搜索“JavaScript日期函数”或相关内容。正则表达式用于匹配字符串的特定部分,这在搜索,提取和替换时非常有用,而不是任何可以帮助您格式化日期的内容。