【问题标题】:Javascript convert yyyy-mm-dd hh:mm:ss like newDate("day, month date year hh:mm:ss")Javascript 转换 yyyy-mm-dd hh:mm:ss like newDate("day, month date year hh:mm:ss")
【发布时间】:2014-04-09 10:29:56
【问题描述】:

我想在new Date("string") (string = month day, year hh:mm:ss 上使用日期对象方法 (getHoures(), getSeconds()...) 但我的日期格式是这样的:yyyy-mm-dd hh:mm:ss

所以我需要将"yyyy-mm-dd hh:mm:ss" 转换为“("day, month date year hh:mm:ss")”

请问我该怎么办?

谢谢!

【问题讨论】:

  • 这就是您要找的吗? stackoverflow.com/questions/4990367/…
  • 如果您以“yyyy-mm-dd hh:mm:ss”格式传递日期字符串,您将获得一个日期对象。使用该对象上的方法
  • @QuickSilver 虽然适用于大多数浏览器,但它不是(AFAICS)“官方支持”的字符串格式之一。

标签: javascript datetime date-format


【解决方案1】:

试试这个:JSFIDDLE 有许多可用的 JavaScript 库。 MySQL 服务器使用的格式 'yyyy-mm-dd hh:mm:ss'。 您可以使用以下代码将上述字符串转换为日期对象:

var arr = " yyyy-mm-dd hh:mm:ss".split(/-|\s|:/);// split string and create array.
var date = new Date(arr[0], arr[1] -1, arr[2], arr[3], arr[4], arr[5]); // decrease month value by 1

【讨论】:

  • 抱歉,如果 OP 指定的月份为 02、03、04,则无法让这个工作。这里需要更多的解析才能正常工作。
【解决方案2】:

实际上,您不需要执行任何此类转换。

您拥有的字符串非常接近new Date(string) 可接受的格式,事实上即使是大多数(如果不是全部)现代浏览器都可以接受的格式。

要使其完全符合 ES5 要求的 ISO8601 变体,只需将日期和时间之间的空格替换为文字 T 字符,并在末尾添加一个时区说明符(例如,Z 表示UTC 或 +01:00,例如)。

请参阅http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15 了解更多信息。

【讨论】:

    【解决方案3】:

    试试这个:

    d = Date().split(" "); var date = d[2] + "-" + d[1] + "-" + d[3] + " " + d[4]

    【讨论】:

    • 如果你想要这种格式的前一天,只需将 date 变量更改为 var date = d[0] +","+ d[2] + "-" + d[1] + "-" + d[3] + " " + d[4]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多