function testSaveWithTimestamps()
 {
     $created_date = new SDateTime(2005, 12, 01, 20, 30, 00);
     $post = SActiveStore::findByPk('Post', 2);
     $this->assertIsA($post->created_on, 'SDateTime');
     $this->assertEqual($created_date, $post->created_on);
     $this->assertEqual($post->created_on, $post->updated_on);
     $post->text = 'blo blo blo';
     $post->save();
     $this->assertNotEqual($post->created_on, $post->updated_on);
     $today = SDate::today();
     $new_post = new Post(array('title' => 'Timestamps and MySQL', 'author' => 'Goldoraf', 'text' => 'ttttt'));
     $this->assertNull($new_post->created_on);
     $this->assertNull($new_post->updated_on);
     $new_post->save();
     $this->assertIsA($new_post->created_on, 'SDateTime');
     $this->assertIsA($new_post->created_on, 'SDateTime');
     $this->assertEqual($new_post->created_on, $new_post->updated_on);
     $this->assertEqual($today->year, $new_post->created_on->year);
     $this->assertEqual($today->month, $new_post->created_on->month);
     $this->assertEqual($today->day, $new_post->created_on->day);
 }
Esempio n. 2
0
function select_year($date, $options = array())
{
    $yearOptions = '';
    $today = SDate::today();
    if (!isset($options['start_year'])) {
        $options['start_year'] = $today->year - 5;
    }
    if (!isset($options['end_year'])) {
        $options['end_year'] = $today->year + 5;
    }
    $step = $options['start_year'] < $options['end_year'] ? 1 : -1;
    $selected = is_date_type($date) ? $date->year : $date;
    for ($i = $options['start_year']; $i != $options['end_year'] + $step; $i = $i + $step) {
        if ($i == $selected) {
            $yearOptions .= "<option value=\"{$i}\" selected=\"selected\">{$i}</option>\n";
        } else {
            $yearOptions .= "<option value=\"{$i}\">{$i}</option>\n";
        }
    }
    if (!isset($options['field_name'])) {
        $options['field_name'] = 'year';
    }
    return select_html($options['field_name'], $yearOptions, $options);
}