作为标题,虽然我只设置了价值。 在Javascript中:
var n = (new Date("2015 Oct 17")).getTime()/1000;
console.log(n);
// result: 1445014800
和PHP:
$unix = date('d-m-Y', 1445014800);
echo $unix;
// result: 16-10-2015
请留下一些解释。 非常感谢!
答案 0 :(得分:1)
在您的JavaScript中:
var n = (new Date("2015 Oct 17")).getTime()/1000;
console.log(n);
// result: 1445014800
操作/1000
正在将您的值强制转换为数字类型,因此答案是正确的!
答案 1 :(得分:0)
在javascript中,解析像“2015 Oct 17”这样的字符串完全取决于实现。如果它完全有效,它很可能被转换为Date对象,表示主机系统时区中当天开始时00:00:00的日期。
对于时区偏移量为UTC + 1000的系统,并将该字符串解析为本地时间,以秒为单位的时间值为1445004000。
但是,这样的系统可能会认为字符串有点像ISO 8601字符串,并且它可能会决定,因为没有时区的这些字符串在ES5中被视为UTC,它会将其视为UTC时间。在这种情况下,以秒为单位的时间值将为1445040000(即相当于2015-10-17T00:00:00Z)。
为了在系统之间可靠地传输日期,自从UNIX(和ECMAScript)纪元1070-01-01T00:00:00Z以来,通常认为最好在几秒或几毫秒内传输时间值。
要为2015年10月17日创建此类时间值,您可以使用:
var timeValue = Date.UTC(2015, 9, 17);
要将UNIX时间值1445014800转换为ECMAScript日期,您可以这样做(注意UNIX时间值以秒为单位,ECMAScript以毫秒为单位):
console.log(new Date(1445014800*1000).toISOString()); // 2015-10-16T17:00:00.000Z
所以我假设PHP主机的时区是UTC-05:00,2015-Oct-17被视为UTC。
答案 2 :(得分:-1)
我已经检查了,这个JS函数返回
1445036400
在人类的时间里'是
Fri, 16 Oct 2015 23:00:00 GMT