2012-02-11 61 views
3

我正在寻找一个很短的代码在JavaScript(jQuery的)执行此:转换PHP的uniqid()使用JavaScript(jQuery的)实时

date("r",hexdec(substr(uniqid(),0,8))); 

请帮助。谢谢。

+0

那是什么代码的目的是什么? – troelskn 2012-02-11 13:01:03

+0

uniqid()仅用于存储在mysql中,避免了重复的ID(两个用户在同一毫秒内点击“保存”)。 JS代码供用户查看日期和时间(精度不需要微秒)。 – 2012-02-11 13:07:28

+0

你还需要javascript实现'uniqid()'或者这个数据会来自哪里? – dfsq 2012-02-11 13:07:31

回答

2

考虑这个例子:

var uniqid = '4f36688f15996'; 

new Date(parseInt(uniqid.substr(0, 8), 16) * 1000); 
// Sat Feb 11 2012 14:09:35 GMT+0100 (CET) 
+0

嗯,它返回当前时间,而不是var uniqid中的一个。 =))http://jsfiddle.net/XzgBf/ – 2012-02-11 13:18:19

+0

@Radio新''关键字丢失。它现在可以工作:http://jsfiddle.net/XzgBf/1/。有关'new Date'和'Date'之间的区别,请参见[MDN:Date](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date#Description)。 – 2012-02-11 13:27:36

+0

谢谢@Rob纠正。我很习惯省略像Date,RegExp这样的内置对象的'new'关键字。但是在这种情况下'new'是至关重要的。 – dfsq 2012-02-11 13:28:17

0

这似乎过于复杂...

php > echo hexdec(substr(uniqid(),0,8)), "\n", time(); 
1328965876 
1328965876 

你只需要一点点的格式为JavaScript toString转换成你所需要的。

php > echo date('r'); 
Sat, 11 Feb 2012 14:12:16 +0100 

js> new Date().toString(); 
"Sat Feb 11 2012 14:11:51 GMT+0100 (CET)"