D7: $node->created property not available in mytheme_preprocess_block(&$variables) function?
The important difference between the two code examples you're giving, is $node = $vars['node'];. You can only use the variables that are available inside the function you're writing. If you declare a function cybele_preprocess_block(&amp;$variables), then the only variable you start with is $variables. In other words: inside that function, $node doesn't exist yet!

Sometimes, the current node is stored in the $variables array, so if it's in there, we can take it out again. That's what the line $node = $vars['node']; does: it creates a new variable $node and populates it with the value of $variables['node']. You do not have to put the node in a separate variable; you can also do this:

function mytheme_preprocess_node(&amp;$variables) {
  $variables['day'] = format_date($variables['node']-&gt;created, 'custom', 'd' );
}


If the node is not available inside $variables (which I think is the case in _preprocess_block) you will have to load the current node. Fortunately that's rather easy in Drupal 7, because you can use menu_get_object. This will only work when viewing a node page.

function mytheme_preprocess_block(&amp;$variables) {
  $node = menu_get_object();
  $variables['day'] = format_date($node-&gt;created, 'custom', 'd' );
}