gpt4 book ai didi

JavaScript JSON 响应 - 格式化日期和时间

转载 作者:行者123 更新时间:2023-12-03 04:39:51 26 4
gpt4 key购买 nike

当我触发 JavaScript 代码打开模式时,会发送 AJAX 调用以检索 JSON 格式的数据。然后,我使用 JSON 响应来填充我的模式。

触发JavaScript的链接是这样的:

<?= $this->Html->link(__('View'), ['action' => 'popup', $session->id], ['class' => 'view', 'data-id' => $session->id]) ?>

这是来自 CakePHP 3 View 上的表的操作。 $session->id是根据链接被点击的哪一行数据来决定的。 Popup 是一个空的 CakePHP 3 函数,它只是促进 JavaScript 工作和模式打开。

触发模态的 JavaScript 如下:

<script type="text/javascript">
$(function () {
$('.view').click(function (ev) {
ev.preventDefault();
var sessionId = $(this).attr('data-id');
$('#viewModal').modal('show');
$.ajax({
url:"localhost/project/sessions/details/"+sessionId+".json",
type:'POST',
success:function(res) {
if(res) {
document.getElementById("prdatestart").innerHTML = res.date_start;
document.getElementById("prstarttime").innerHTML = res.starttime;
}
}
});
});
});
</script>

我的 CakePHP 3 SessionsController 中的详细信息函数是这样的,它检索之前获得的 $session->id 的相关数据:

public function details($id = null)
{
$details = $this->Sessions->get($id);
$this->set(array(
'output' => $details,
'_serialize' => 'output',
'_jsonp' => true
));
}

这是我的完整模式,然后打开:

<!-- Modal -->
<div class="modal fade" id="viewModal" tabindex="-1" role="dialog" aria-labelledby="viewModalLabel"
aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
<h3 class="modal-title" id="viewModalLabel">Session Details</h3>
<br>
<table class="vertical table col-sm-2">
<tr>
<th>Starting Date:</th>
<td id="prdatestart"></td>
</tr>
<tr">
<th>Starting Time:</th>
<td id="prstarttime"></td>
</tr>
</table>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close
</button>
</div>
</div>
</div>
</div>

但是,我的日期和时间采用以下格式:

  • 日期:2017-05-12T00:00:00+00:00
  • 时间:2017-03-31T00:14:00+11:00

对于日期响应,我只需要日期,并采用 D/M/Y 格式。对于时间响应,我只需要时间,格式为 12 小时 hh:mm AM/PM 格式。 (我不需要最后的时区内容,因为首次提交数据时已考虑到时区)。

最佳答案

只需使用普通的 javascript new Date() .post 就像简单的 js 函数 cal(yourdatevarible ,whichtype) type=date|time

var date = '2017-05-12T00:00:00+00:00';
var time = '2017-03-31T00:14:00+11:00';

console.log(cal(date, 'date'))
console.log(cal(time, 'time'))

function cal(date, type) {

var m = ['Jan', 'Feb', 'Mar', 'Aprl', 'May', 'Jun', 'July', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
//var w =['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var x = new Date(date)
var h = x.getHours() > 12 ? x.getHours() - 12 : x.getHours();
var format = x.getHours() > 12 ? 'PM' : 'AM';
if (type == 'date') {
return x.getDate() + ' ' + m[x.getMonth()] + ' ' + x.getFullYear();
} else {
var min = x.getMinutes().toString().length > 1 ? x.getMinutes() : '0' + x.getMinutes();
h =h.toString().length > 1 ? h : '0' + h;
return h + ':' + min + ' ' + format;
}
}

关于JavaScript JSON 响应 - 格式化日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com