我在JavaScript中有这个脚本:
var dt = new Date();
var intDt = dt.valueOf();
console.log(intDt); // 1504100049524
我想将其转换为PHP,但令我惊讶的是结果并不相同。 这是我的PHP脚本:
$dt = date(DATE_RFC2822);
$intDt = strtotime($dt);
echo($intDt); //1504100049
我需要这个来计算月相,分数和角度。
月亮的阶段,分数和角度的微积分在我的js脚本中运行良好。但是由于这个原因,我的PHP结果与JavaScript不同。
答案 0 :(得分:0)
PHP的时间函数返回自unix时代以来的秒数,而不是像JS那样的毫秒数。您需要将JS时间除以1000并丢弃余数或将PHP时间乘以1000. microtime可以使用第二个参数设置为true,但它只能检索当前时间。
答案 1 :(得分:0)
PHP的getTimestamp()
将为您提供UNIX时间戳,即自1970年1月1日以来的秒。
此处有更多信息:Unix Time
JavaScript valueOf()
将为您提供自同一日期以来的毫秒。
更多内容:Date.prototype.valueOf()
请牢记这些,这是javascript的一个片段:
var jsdt = new Date('2018-08-18')
undefined
jsdt.valueOf()
1534550400000
这是在PHP中执行“相同”操作的方法:
$external = "08/18/2018 00:00:00";
$format = "m/d/Y H:i:s";
$dateobj = DateTime::createFromFormat($format, $external);
echo $dateobj->getTimestamp()*1000; // 1534550400000