我为数据库中的日期行提供了默认值CURRENT_TIMESTAMP。现在Iam尝试将此UTC日期和时间转换为用户登录的日期和时间。我使用了一个在stackoverflow Convert UTC date time to local date time using JavaScript中找到的代码。但这不能给我正确的日期和时间。我将日期和时间都设为零。在下面找到我尝试的代码。请提前帮助我,以帮助您实现这一目标。
var today = new Date();
var date1 = convertUTCDateToLocalDate(new Date(today));
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date1.getTime()+date1.getTimezoneOffset()*60*1000);
var offset = date1.getTimezoneOffset() / 60;
var hours = date1.getHours();
newDate.setHours(hours - offset);
return newDate;
}
var date = date1.toLocaleString();
$http.post('webservices/sample.php', {
'date':date,
})
PHP代码:
$date1=mysql_real_escape_string($data->date);
$date=strtotime($date1);
$timedatenew=date('Y-m-d H:i:s', $date);
$query=mysql_query("insert into UserDate(actiondate) values('$timedatenew')");
最佳答案
我怀疑您收到全零的原因是因为convertUTCDateToLocalDate函数中对date1的所有引用。您可以尝试这样的事情:
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
var today = new Date();
var date1 = convertUTCDateToLocalDate(new Date(today));
var date = date1.toLocaleString();
$http.post('webservices/sample.php', {
'date':date,
})
希望有帮助!
编辑:我的ACTUAL示例代码(因为我没有PHP后端对此进行测试)。
<script>
function convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
var today = new Date();
var date1 = convertUTCDateToLocalDate(new Date(today));
var date = date1.toLocaleString();
console.log(date);
</script>
我在浏览器控制台日志中看到了本地日期/时间。如果仍然有问题,则可能与bailiwick之外的PHP代码有关。
祝好运!
关于javascript - 将UTC时间戳从数据库转换为登录日期时间的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36596221/