首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用PHP将毫秒的MySQL时间转换为javascript时间戳

用PHP将毫秒的MySQL时间转换为javascript时间戳
EN

Stack Overflow用户
提问于 2016-08-03 17:52:57
回答 3查看 1.7K关注 0票数 1

我有来自mysql的时间戳,比如:"2016-08-03 11:11:41.04000“。此时间戳是CONCAT('date',‘','time') select的结果。

我需要用PHP将时间戳转换为仅数字的时间戳,这样我就可以在保留毫秒精度的情况下使用javascript中的时间戳。

关于这个主题的其他问题只涉及没有MySQL毫秒片段的日期,或者简单地建议strtotime(''datestring) * 1000,这会失去毫秒精度。

毫秒精度需要保留,这样才能在javascript中使用。

EN

回答 3

Stack Overflow用户

发布于 2016-08-03 18:37:33

我会提出以下建议:

在JS中使用时,在PHP中打印连接字符串。您可以使用JS Date对象来设置正确的保留毫秒的时间。下面是对Date对象的引用:http://www.w3schools.com/jsref/jsref_obj_date.asp

总之

代码语言:javascript
复制
var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);

让PHP在JS中填充这些参数(年、月、毫秒等

票数 1
EN

Stack Overflow用户

发布于 2018-10-16 08:10:19

使用这个简单的PHP代码将带有毫秒的日期从PHP格式转换为带有keep毫秒的JS时间戳格式。

2016-08-03 11:11:41.040转换为1470206501040

代码语言:javascript
复制
<?php
date_default_timezone_set('UTC');
$date = '2016-08-03 11:11:41.040';
$date = DateTime::createFromFormat('Y-m-d H:i:s.u', $date);
$ts_micro = (float) ($date->getTimestamp() . '.' . $date->format('u'));
$ts_mili = (float) ($ts_micro * 1000);
echo round($ts_mili); //result: 1470206501040

对于测试,您可以使用JS将1470206501040反向转换为2016-08-03T11:11:41.040Z时间:

代码语言:javascript
复制
var d = new Date(1470222701040);
var n = d.toISOString();
document.write(n); //result: 2016-08-03T11:11:41.040Z

票数 1
EN

Stack Overflow用户

发布于 2016-08-03 20:00:05

我使用了@feeela和@sietse85的建议。

在PHP中:

代码语言:javascript
复制
$datetime  = new \DateTime('2016-08-03 11:11:41.04000');
$timestamp = $datetime->format('YmdHisu'); // 2016080311114104000

在javascript中:

代码语言:javascript
复制
/**
 * 2016080311114104000
 * @param string yyyymmddhhiissuuuuuu
 */
function dateFromCustomTimestamp(date) {
    date = date.toString();
    return new Date(
        date.substring(0,4),
        date.substring(4,6),
        date.substring(6,8),
        date.substring(8,10),
        date.substring(10,12),
        date.substring(12,14),
        date.substring(14,20)/100
    );
}

不是很好,但是如果解决了从mysql => php => javascript中转换保留毫秒的时间戳的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38740204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档