function result($currentdate, $operation, $number, $type)
 {
     // create date object with timestamp from the 'currentdate' form element
     $date = new YDDate();
     $date->set(intval($currentdate));
     // if operation is 1 we want subtract the number
     if ($operation == 1) {
         $number = -intval($number);
     } else {
         $number = intval($number);
     }
     // add number to date
     switch (intval($type)) {
         case 0:
             $date->addMinute($number);
             break;
         case 1:
             $date->addDay($number);
             break;
         case 2:
             $date->addMonth($number);
             break;
         default:
             $date->addYear($number);
     }
     // assign span with date
     $this->ajax->addResult('myspanresult', YDStringUtil::formatDate($date->getTimestamp(), 'datetime'));
     // return response to client browser
     return $this->ajax->processResults();
 }
 /**
  *  This function counts visits of a object
  *
  *  @param $id       Object id (content_id)
  *  @param $user_id  (Optional) User id (0 means visitors)
  *  @param $period   (Optional) Period for count. Valid values: 'week', 'month', year'
  *
  *  @returns    an array of labels => values
  */
 function getObjectVisits($id, $user_id = 0, $period = 'week')
 {
     YDInclude('YDDate.php');
     // compute start date
     $date = new YDDate();
     $labels = array();
     if ($period == 'week') {
         for ($i = 0; $i < 7; $i++) {
             $labels[] = $date->getDayName();
             $date->addDay(-1);
         }
     }
     if ($period == 'month') {
         for ($i = 0; $i < 4; $i++) {
             $labels[] = $date->getMonthName();
             $date->addMonth(-1);
         }
     }
     if ($period == 'year') {
         for ($i = 0; $i < 3; $i++) {
             $labels[] = $date->getYear();
             $date->addYear(-1);
         }
     }
     $labels = array_reverse($labels);
     $this->resetAll();
     $this->user_id = intval($user_id);
 }
 function actionDefault()
 {
     YDDebugUtil::dump(YDDate::now(), 'YDDate::now()');
     YDDebugUtil::dump(YDDate::nowCustom("%d"), 'YDDate::nowCustom( "%d" )');
     YDDebugUtil::dump(YDDate::nowCustom("%d %B %Y"), 'YDDate::nowCustom( "%d %B %Y" )');
     // Static validation
     YDDebugUtil::dump(YDDate::get("HUM", time()), 'YDDate::get( "HUM", time() )');
     YDDebugUtil::dump(YDDate::get("EUN_DATE", time()), 'YDDate::get( "EUN_DATE", time() )');
     YDDebugUtil::dump(YDDate::get("HUM_DATE", "2004-03-12", "ISO"), 'YDDate::get( "HUM_DATE", "2004-03-12", "ISO" )');
     YDDebugUtil::dump(YDDate::now(), 'YDDate::now()');
     YDDebugUtil::dump(YDDate::now("EUN_DATE"), 'YDDate::now( "EUN_DATE" )');
     YDDebugUtil::dump(YDDate::now("ISO_TIME"), 'YDDate::now( "ISO_TIME" )');
     YDDebugUtil::dump(YDDate::now("HUM"), 'YDDate::now( "HUM" )');
     YDDebugUtil::dump(YDDate::isValid(""), 'YDDate::isValid( "" )');
     YDDebugUtil::dump(YDDate::isValid("0000-00-00 00:00:00", "ISO"), 'YDDate::isValid( "0000-00-00 00:00:00", "ISO" )');
     YDDebugUtil::dump(YDDate::isValid("0000-00-00 00:00:00", "ISO", true, false), 'YDDate::isValid( "0000-00-00 00:00:00", "ISO", true, false )');
     YDDebugUtil::dump(YDDate::isValid("2005-5-5"), 'YDDate::isValid( "2005-5-5" )');
     YDDebugUtil::dump(YDDate::isValid("2005 5 15"), 'YDDate::isValid( "2005 5 15" )');
     YDDebugUtil::dump(YDDate::isValid("20050515", "SQL"), 'YDDate::isValid( "20050515", "SQL" )');
     YDDebugUtil::dump(YDDate::isValid("15 5 2005", "EUN"), 'YDDate::isValid( "15 5 2005", "EUN" )');
     YDDebugUtil::dump(YDDate::isValid("15 May 2005", "HUM"), 'YDDate::isValid( "15 May 2005", "HUM" )');
     YDDebugUtil::dump(YDDate::isValid("5.15.2005", "USA"), 'YDDate::isValid( "5.15.2005", "USA" )');
     YDDebugUtil::dump(YDDate::isValid("5.15.2005", "EUN"), 'YDDate::isValid( "5.15.2005", "EUN" )');
     YDDebugUtil::dump(YDDate::isValid("5.15.2005", "HUM"), 'YDDate::isValid( "5.15.2005", "HUM" )');
     YDDebugUtil::dump(YDDate::isValid("5.15.2005", "ISO"), 'YDDate::isValid( "5.15.2005", "ISO" )');
     YDDebugUtil::dump(YDDate::isValid("5.15.2005", "SQL"), 'YDDate::isValid( "5.15.2005", "SQL" )');
     $date = new YDDate();
     // Setting an empty date
     $date->set("0000-00-00 00:00:00");
     YDDebugUtil::dump($date->get(), '$date->set( "0000-00-00 00:00:00" )');
     // Setting Unix epoch
     $date->set(0);
     YDDebugUtil::dump($date->get(), '$date->set( 0 )');
     // Setting in SQL format
     $date->set("20050515", "SQL");
     YDDebugUtil::dump($date->get(), '$date->set( "20050515", "SQL" )');
     // Setting in ISO format
     $date->set("2005-5-5");
     YDDebugUtil::dump($date->get(), '$date->set( "2005-5-15" )');
     $date->set("2005 5 15");
     YDDebugUtil::dump($date->get(), '$date->set( "2005 5 15" )');
     // Setting in EUN format
     $date->set("15 5 2005", "EUN");
     YDDebugUtil::dump($date->get(), '$date->set( "15 5 2005", "EUN" )');
     // Setting in HUM format
     $date->set("15 May 2005", "HUM");
     YDDebugUtil::dump($date->get(), '$date->set( "15 May 2005", "HUM" )');
     // Setting in USA format
     $date->set("5.15.2005", "USA");
     YDDebugUtil::dump($date->get(), '$date->set( "5.15.2005", "USA" )');
     // Setting a custom format
     YDDebugUtil::dump(YDDateFormat::setString("custom format", "%a %A %b %B %d %m %Y %H %M %S %T %w"), 'YDDateFormat::setString( "custom format", "%a %A %b %B %d %m %Y %H %M %S %T %w" )');
     // Returning the date with a custom format
     YDDebugUtil::dump($date->get("custom format"), '$date->get( "custom format" )');
     // Setting the date to today
     $date->set();
     YDDebugUtil::dump($date->get(), '$date->set()');
     // Getting date info
     YDDebugUtil::dump($date->get(), '$date->get()');
     YDDebugUtil::dump($date->isToday(), '$date->isToday()');
     YDDebugUtil::dump($date->isTomorrow(), '$date->isTomorrow()');
     YDDebugUtil::dump($date->isYesterday(), '$date->isYesterday()');
     YDDebugUtil::dump($date->isCurrentHour(), '$date->isCurrentHour()');
     YDDebugUtil::dump($date->isCurrentMinute(), '$date->isCurrentMinute()');
     YDDebugUtil::dump($date->isCurrentMonth(), '$date->isCurrentMonth()');
     YDDebugUtil::dump($date->isCurrentYear(), '$date->isCurrentYear()');
     YDDebugUtil::dump($date->getDayName(), '$date->getDayName()');
     YDDebugUtil::dump($date->getDayName(true), '$date->getDayName( true )');
     YDDebugUtil::dump($date->getMonthName(), '$date->getMonthName()');
     YDDebugUtil::dump($date->getMonthName(true), '$date->getMonthName( true )');
     // Getting date info with different locale
     YDDebugUtil::dump(YDLocale::set("ptb"), 'YDLocale::set( "ptb" )');
     YDDebugUtil::dump($date->getDayName(), '$date->getDayName()');
     YDDebugUtil::dump($date->getDayName(true), '$date->getDayName( true )');
     YDDebugUtil::dump($date->getMonthName(), '$date->getMonthName()');
     YDDebugUtil::dump($date->getMonthName(true), '$date->getMonthName( true )');
     // Comparing two dates
     $date2 = $date;
     $date2->addHour(10);
     $date2->addDay(35);
     YDDebugUtil::dump($date->get(), 'Date 1');
     YDDebugUtil::dump($date2->get(), 'Date 2');
     YDDebugUtil::dump($date->getDifference($date2), 'Difference between Dates 1 and 2');
     // Adding values
     YDDebugUtil::dump($date->get(), '$date->get()');
     YDDebugUtil::dump($date->addSecond(70), '$date->addSecond( 70 )');
     YDDebugUtil::dump($date->addMinute(80), '$date->addMinute( 80 )');
     YDDebugUtil::dump($date->addHour(24), '$date->addHour( 24 )');
     YDDebugUtil::dump($date->addHour(12), '$date->addHour( 12 )');
     YDDebugUtil::dump($date->addHour(-10), '$date->addHour( -10 )');
     YDDebugUtil::dump($date->addHour(-24), '$date->addHour( -24 )');
     YDDebugUtil::dump($date->addMinute(10), '$date->addMinute( 10 )');
     YDDebugUtil::dump($date->addMinute(60), '$date->addMinute( 60 )');
     YDDebugUtil::dump($date->addMinute(120), '$date->addMinute( 120 )');
     YDDebugUtil::dump($date->addMinute(-120), '$date->addMinute( -120 )');
     YDDebugUtil::dump($date->addMinute(360), '$date->addMinute( 360 )');
     YDDebugUtil::dump($date->addSecond(10), '$date->addSecond( 10 )');
     YDDebugUtil::dump($date->addSecond(60), '$date->addSecond( 60 )');
     YDDebugUtil::dump($date->addSecond(3600), '$date->addSecond( 3600 )');
     YDDebugUtil::dump($date->addSecond(), '$date->addSecond( -10 )');
     YDDebugUtil::dump($date->addDay(40), '$date->addDay( 40 )');
     YDDebugUtil::dump($date->addDay(-3), '$date->addDay( -3 )');
     YDDebugUtil::dump($date->addMonth(1), '$date->addMonth( 1 )');
     YDDebugUtil::dump($date->addMonth(12), '$date->addMonth( 12 )');
     YDDebugUtil::dump($date->addMonth(10), '$date->addMonth( 10 )');
     YDDebugUtil::dump($date->addMonth(-4), '$date->addMonth( -4 )');
     YDDebugUtil::dump($date->addMonth(-20), '$date->addMonth( -20 )');
     YDDebugUtil::dump($date->addYear(1), '$date->addYear( 1 )');
     YDDebugUtil::dump($date->addYear(12), '$date->addYear( 12 )');
     YDDebugUtil::dump($date->addYear(10), '$date->addYear( 10 )');
     YDDebugUtil::dump($date->addYear(-4), '$date->addYear( -4 )');
     YDDebugUtil::dump($date->addYear(-20), '$date->addYear( -20 )');
     // Getting an array
     YDDebugUtil::dump($date->toArray(), '$date->toArray()');
     $date->set("1981-11-20");
     YDDebugUtil::dump($date->get(), '$date->set( "1981-11-20" )');
     YDDebugUtil::dump($date->getYearsToToday(), '$date->getYearsToToday()');
     // Should return an error
     YDDebugUtil::dump($date->set("no_date"), '$date->set( "no_date" )');
 }
 /**
  *  This function returns a boolean indicating if the date is yesterday.
  *
  *  @returns  True if yesterday, false otherwise.
  */
 function isYesterday()
 {
     $date = new YDDate();
     $date->addDay(-1);
     $this->reset();
     $t = $this->year . $this->month_with_zero . $this->day_with_zero;
     $d = $date->year . $date->month_with_zero . $date->day_with_zero;
     if ($t == $d) {
         return true;
     }
     return false;
 }