---
name: "CURLOPT_TIMEVALUE"
section: "3"
platform: "linux"
package: "curl"
version: "8.23.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/CURLOPT_TIMEVALUE"
---

# CURLOPT\_TIMEVALUE(3)

time value for conditional

## NAME

CURLOPT\_TIMEVALUE - time value for conditional

## SYNOPSIS

```
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_TIMEVALUE, long val);
```

## DESCRIPTION

Pass a long *val* as parameter. This should be the time counted as seconds since 1 Jan 1970, and the time is used in a condition as specified with *[CURLOPT\_TIMECONDITION(3)](/CURLOPT_TIMECONDITION/3.md)*.

On systems with 32-bit 'long' variables (such as Windows), this option cannot set dates beyond the year 2038. Consider *[CURLOPT\_TIMEVALUE\_LARGE(3)](/CURLOPT_TIMEVALUE_LARGE/3.md)* instead.

## DEFAULT

0

## PROTOCOLS

This functionality affects http only

## EXAMPLE

```
int main(void)
{
  CURL *curl = curl_easy_init();
  if(curl) {
    CURLcode result;
    curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");
    /* January 1, 2020 is 1577833200 */
    curl_easy_setopt(curl, CURLOPT_TIMEVALUE, 1577833200L);
    /* If-Modified-Since the above time stamp */
    curl_easy_setopt(curl, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
    /* Perform the request */
    result = curl_easy_perform(curl);
    curl_easy_cleanup(curl);
  }
}
```

## HISTORY

**CURL\_TIMECOND\_**\* enums became *long* types in 8.13.0, prior to this version a *long* cast was necessary when passed to *[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)*.

## AVAILABILITY

Added in curl 7.1

## RETURN VALUE

*[curl\_easy\_setopt(3)](/curl_easy_setopt/3.md)* returns a CURLcode indicating success or error.

CURLE\_OK (0) means everything was OK, non-zero means an error occurred, see *[libcurl-errors(3)](/libcurl-errors/3.md)*.

## SEE ALSO

[**CURLOPT\_TIMECONDITION**(3)](/CURLOPT_TIMECONDITION/3.md), [**CURLOPT\_TIMEVALUE\_LARGE**(3)](/CURLOPT_TIMEVALUE_LARGE/3.md)
