<script lang="ts">
	export let date: string | Date;

	if (typeof date === 'string') date = new Date(date);

	const pad = function (str: string): string {
		return ('0' + str).slice(-2);
	};

	const year = date.getFullYear().toString();
	const month = pad((date.getMonth() + 1).toString());
	const day = pad(date.getDate().toString());
	const hour = pad(date.getHours().toString());
	const min = pad(date.getMinutes().toString());
	const sec = pad(date.getSeconds().toString());
	const tz = -date.getTimezoneOffset();
	const sign = tz >= 0 ? '+' : '-';
	const tzHour = pad((tz / 60).toString());
	const tzMin = pad((tz % 60).toString());

	let formattedDate = `${year}-${month}-${day}T${hour}:${min}:${sec}${sign}${tzHour}:${tzMin}`;
</script>

{formattedDate}
