You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.3 KiB

  1. // Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
  2. // MIT License. See license.txt
  3. wn.provide('wn.datetime');
  4. var double_digit = function(d) {
  5. if(cint(d)<10) {
  6. return "0" + cint(d);
  7. } else {
  8. return d + "";
  9. }
  10. }
  11. $.extend(wn.datetime, {
  12. validate: function(v) {
  13. if(!v) return;
  14. var time_part = "";
  15. if(v.indexOf(" ")!=-1) {
  16. var tmp = v.split(" ");
  17. v = tmp[0];
  18. time_part = " " + tmp[1];
  19. }
  20. var parts = $.map(v.split('-'), function(part) { return cint(part) ? part : null; });
  21. if(parts.length!=3) {
  22. return null;
  23. }
  24. var test_date = new Date(parts[0], parts[1]-1, parts[2]);
  25. if(test_date.getFullYear() !=parts[0]
  26. || (test_date.getMonth() + 1) != parts[1]
  27. || test_date.getDate() != parts[2])
  28. return null;
  29. return v + time_part;
  30. },
  31. now_datetime: function() {
  32. return wn.datetime.get_datetime_as_string(new Date());
  33. },
  34. now_time: function() {
  35. var d = new Date();
  36. return [double_digit(d.getHours()), double_digit(d.getMinutes()), double_digit(d.getSeconds())].join(":")
  37. },
  38. get_datetime_as_string: function(d) {
  39. if(!d) return null;
  40. return [d.getFullYear(), double_digit(d.getMonth()+1), double_digit(d.getDate())].join("-") + " "
  41. + [double_digit(d.getHours()), double_digit(d.getMinutes()), double_digit(d.getSeconds())].join(":");
  42. }
  43. });