Add 'fields' => 'ids'
to skip setting up the post and just create the array you want in the foreach
.
$week_args = array(
'posts_per_page' => - 1,
'post_type' => 'post',
'post_status' => array( 'publish' ),
'fields' => 'ids',
'date_query' => array(
'before' => 'next Saturday',
'after' => 'last Monday',
),
);
$week_array = get_posts( $week_args );
$week_count = count( $week_array );
printf( '<h1>%s posts this week</h1>', $week_count );
$dates = array();
foreach ( $week_array as $post_id ) {
$login = get_post_meta( $post_id, 'meta_login', true );
$logout = get_post_meta( $post_id, 'meta_logout', true );
$dates[ $post_id ] = array(
"meta_login" => $login ? $login : 0,
"meta_logout" => $logout ? $logout : 0,
"dif" => abs(strtotime($logout) - strtotime($login)),
);
}
echo "<pre>";
print_r( $dates );