我需要将返回的日期转换为“ 2018-09-28T16:00:05.000Z”
2018-09-28 12:05 AM
使用php和javascript,我想一起使用其中一种或两种语言
答案 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
}