计数定时器,以开始日期为功能变量

时间:2011-05-04 07:45:51

标签: javascript jquery function input countdown

我是javascript的新手,并且正在尝试创建一个可以将某个日期作为输入的计数计时器,并计算自该日期以来已经过去的时间。

我目前正在使用来自http://keith-wood.name/countdown.html的jquery插件,但我遇到了2个问题

1)我无法弄清楚如何将输入日期添加为函数变量。我在这个论坛上发现了另一个类似的问题 - Jquery Countup Timer,但他们使用固定日期而不是变量输入日期。

2)如何确保变量输入日期符合特定格式?目前我正在尝试从mysql数据库中读取输入日期,该数据库将日期时间戳为 2010-06-17 15:12:30,但我不认为这是jquery插件将读取的日期格式。有没有办法解析这个日期,以便格式匹配?

非常感谢任何有帮助的人!

史蒂夫

3 个答案:

答案 0 :(得分:1)

这是一个例子。

http://jsfiddle.net/HXf5v/

您需要做的就是创建一个将Date对象作为参数

的javascript函数

类似的东西:

function doDateCountUp(date){
  $('#sinceCountDown').countdown({since: date, compact:true, format: 'YOWDHMS', description: ''});    
}

或者,您也可以始终创建一个jquery函数。

jQuery.fn.doDateCountUp = function(date){
    $(this).countdown({since: date, compact:true, format: 'YOWDHMS', description: ''});  
}

然后你可以像这样调用jquery函数:

$('#mydiv').doDateCountUp(new Date())

格式化新的Date()对象。你应该看看:

http://www.w3schools.com/jS/js_obj_date.asp

表示你可以像这样创建一个日期对象:

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

答案 1 :(得分:0)

将mysql日期转换为javascript日期对象:

function mysql2jsdate(mysqlDate){
   var parts = mysqlDate.replace(/:/g, '-').replace(' ', '-').split("-");
   parts = $.map(parts, function(part){ return parseInt(part, 10) });
   return new Date(parts[0], parts[1]-1, parts[2], parts[3], parts[4], parts[5]);
}

使用示例:

var jsDate = mysql2jsdate('2010-06-17 15:12:30');

希望这有助于实现目标

答案 2 :(得分:0)

以下是从文本框中获取日期并将其用作startdate的示例:

countup with input exmample

javascript可以通过接收几种不同格式的字符串来创建新日期。以下是这些格式的快速链接:javascript date