Playing around with local date time parsing.

This commit is contained in:
James Cole 2024-11-09 20:38:30 +01:00
parent 0d11769590
commit 0ae5593dde
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
5 changed files with 19 additions and 5 deletions

View File

@ -3,7 +3,6 @@
namespace FireflyIII\Casts;
use Carbon\Carbon;
use Carbon\CarbonImmutable;
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
use Illuminate\Database\Eloquent\Model;
@ -19,13 +18,11 @@ use Illuminate\Database\Eloquent\Model;
class SeparateTimezoneCaster implements CastsAttributes
{
/**
* Cast the given value.
*
* @param array<string, mixed> $attributes
*/
public function get(Model $model, string $key, mixed $value, array $attributes): ?Carbon
{
if('' === $value || null === $value) {
if ('' === $value || null === $value) {
return null;
}
$timeZone = $attributes[sprintf('%s_tz', $key)] ?? config('app.timezone');

View File

@ -26,6 +26,16 @@ $.ajaxSetup({
}
});
function parseToLocalDates() {
"use strict";
$('span.date-time').each(function () {
var date = $(this).data('date');
var obj = moment.utc(date).local();
var timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
$(this).text(obj.format(date_time_js) + ' ('+ timeZone +')');
});
}
$(function () {
"use strict";
@ -96,6 +106,9 @@ $(function () {
// trigger list thing
listLengthInitial();
// update dates:
parseToLocalDates();
});
function currencySelect(e) {

View File

@ -26,6 +26,7 @@ declare(strict_types=1);
return [
// general stuff:
'stored_as_tz' => 'stored as ":timezone"',
'close' => 'Close',
'actions' => 'Actions',
'edit' => 'Edit',

View File

@ -44,6 +44,7 @@ var todayText = ' {{ trans('firefly.today')|escape('js') }}';
// some formatting stuff:
var month_and_day_js = "{{ trans('config.month_and_day_js') }}";
var date_time_js = "{{ trans('config.date_time_js') }}";
var acc_config_new = {format: accountingConfig};
// strings and translations used often:

View File

@ -74,10 +74,12 @@
<tr>
<td style="width:30%;">{{ trans('list.date') }}</td>
<td>
<span class="date-time" data-date="{{ first.date.toIso8601ZuluString() }}">
{{ first.date.isoFormat(dateTimeFormat) }}
{% if(first.date_tz != '') %}
({{ first.date_tz }})
({{ trans('firefly.stored_as_tz', {timezone: first.date_tz }) }})
{% endif %}
</span>
</td>
</tr>
</tbody>