我有一个应用程序,我需要将mySQL日期时间戳和倒计时转换为当前系统时间。我正在使用keith wood jquery倒计时,它已正确安装并且可以工作......但我无法获取代码来转换我的时间戳以保存我的生命。
我发现这个代码片段在某个地方转换时间戳,但我在firefox控制台中收到的错误是:timestamp.replace不是函数。我不是js编码的专家,所以我确信它是显而易见的。任何人都可以提供的帮助将非常感激。这开始让我疯了。
这是一个rails应用程序。
$(document).ready(function mysqlTimeStampToDate(timestamp) {
//function parses mysql datetime string and returns javascript Date object
//input has to be in this format: 2007-06-05 15:26:02
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
});
$(document).ready(function () {
$('textLayout').countdown({until: mysqlTimeStampToDate("#work_order_hard_completion_datetime"), layout: '{dn}d {hnn}{sep}{mnn}{sep}{snn}'});
});
答案 0 :(得分:0)
执行此操作时:
$(document).ready(function mysqlTimeStampToDate(timestamp) {
// ...
});
当文档准备就绪时,你告诉jQuery运行你的mysqlTimeStampToDate
函数,你没有定义全局mysqlTimeStampToDate
函数供以后使用。然后,当jQuery运行你的函数时,它将是executed with the jQuery object as its argument,因此timestamp
实际上是jQuery的$
,当你的函数运行时replace
上没有$
方法}。
在控制台打开的情况下运行此操作,您将看到我的意思:http://jsfiddle.net/ambiguous/eUNS3/
我想你只想这样说:
function mysqlTimeStampToDate(timestamp) {
//function parses mysql datetime string and returns javascript Date object
//input has to be in this format: 2007-06-05 15:26:02
var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
}
$(document).ready(function () {
$('textLayout').countdown({until: mysqlTimeStampToDate("#work_order_hard_completion_datetime"), layout: '{dn}d {hnn}{sep}{mnn}{sep}{snn}'});
});