Returning information about searches performed by a user
The code is readable enough and to the point, there is not much to improve. I would just extract date retrieval into its own function so there is no risk of slightly mistyping the format, for instance; and change the formating of the output dict to improve readability:

import datetime
from accounts.models import UserProfile


def extract_date(request, parameter, fmt='%Y-%m-%d'):
    date = request.GET.get(parameter)
    return datetime.datetime.strptime(date, fmt)


def get_search_data(request):
    if request.user.is_authenticated():
        user_email = request.user.email
        user_profile = UserProfile.objects.get(user=request.user)
        user_phone = user_profile.phone_number
    else:
        user_email = ''
        user_phone = ''

    search_date = datetime.datetime.now()
    rent_starts = extract_date(request, 'date_start')
    rent_ends = extract_date(request, 'date_end')
    rent_duration = rent_ends - rent_starts
    days_till_rent_start = rent_starts - search_date

    return {'search_data': {
        'user_email': user_email,
        'user_phone': user_phone,
        'search_date': search_date.strftime('%Y-%m-%d'),
        'rent_duration': rent_duration.days,
        'days_till_rent_start': days_till_rent_start.days,
    }}


However, given that this function does not interact with your models (except to retrieve a phone number that could have been passed to a template earlier on), I'm wondering why you perform this computation server side. All the necessary informations are already available to the client and javascript's Date objects can perform the same kind of manipulations than what you're doing with datetime.