在PHP和JavaScript中转换时间日期

时间:2018-09-28 23:14:39

标签: javascript php

我需要将返回的日期转换为“ 2018-09-28T16:00:05.000Z”

2018-09-28 12:05 AM

使用php和javascript,我想一起使用其中一种或两种语言

3 个答案:

答案 0 :(得分:0)

使用strtotime()解释时间戳的任何标准格式。然后将date()或strftime()用于输出。

echo date('Y-m-d h:i A', strtotime($youtube_time));

答案 1 :(得分:0)

您应该可以使用javascript直接解析它,但是格式化输出格式很麻烦,因此建议您使用momentjs之类的库。该格式与php的格式不兼容,但总比没有好。由于这是在客户端发生的,因此它将显示用户的本地时间。

var s = "2018-09-28T16:00:05.000Z";

var d = new Date(s);
document.getElementById("js").innerHTML = d;

var m = moment(s);
document.getElementById("m").innerHTML = m.format("YYYY-MM-DD h:MM A");
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<div id="js"></div>
<div id="m"></div>

对于php,它是ISO8601,但实际上不是,因此您需要格式化时间并将其转换为适当的时区:

$d = DateTime::createFromFormat("Y-m-d\TH:i:s.uO", "2018-09-28T16:00:05.000Z");

var_dump($d->format("Y-m-d h:i A"));

答案 2 :(得分:-1)

逻辑很线性,所以我认为该功能可以说明一切。这是用javascript编写的,可以将其转换为PHP,但是代码基本相同。

function(datetime) {
    date = datetime.split("T")[0];
    time = datetime.split("T")[1];
    hour = time.split(":")[0]
    minute = time.split(":")[1]
    halfday = "AM"
    if (hour > 12) {
        hour = hour - 12
        halfday = "PM"
    } else if(hour == 12) {
        halfday = "PM"
    }
    return date + " " + hour + ":" + minute + " " + halfday
}