Skip to content

Commit f1fd1e7

Browse files
committed
sheet datetime
Signed-off-by: Alex Ivanov <ai@contributor.pw>
1 parent cfe9c23 commit f1fd1e7

File tree

6 files changed

+62
-1
lines changed

6 files changed

+62
-1
lines changed

snippets/common_js/date-range-iterator/readme.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: '2021-04-19'
44
description: 'Gets an iterator of dates for the specified range.'
55
tags: ['js', 'common']
66
categories: ['snippets']
7-
images: ['./snippets/sheets/unlink_urls/screenrecord.gif']
7+
images: ['./snippets/sheets/date-range-iterator/screenshot.png']
88
---
99

1010
{{< toc >}}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"timeZone": "Europe/Moscow",
3+
"dependencies": {},
4+
"exceptionLogging": "STACKDRIVER",
5+
"runtimeVersion": "V8"
6+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "standalone"
3+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/**
2+
* Converts date-time to numeric Sheets format
3+
*
4+
* @param {(number|Date)} date JS Date or time in ms
5+
* @param {number} timezoneOffset
6+
* @return {number} Google Sheets Date number
7+
*/
8+
function toGoogleSheetsDateNumber(date, timezoneOffset) {
9+
const _date = new Date(date);
10+
timezoneOffset = timezoneOffset || _date.getTimezoneOffset();
11+
const _start = new Date(Date.UTC(1899, 11, 30, 0, 0, 0, 0));
12+
return ((_date.getTime() - _start.getTime()) / 60000 - timezoneOffset) / 1440;
13+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: 'Sheets datetime converter'
3+
date: '2021-04-20'
4+
description: 'Converts date-time to Sheets format.'
5+
tags: ['js', 'common']
6+
categories: ['snippets']
7+
---
8+
9+
{{< toc >}}
10+
11+
## Sheets datetime converter
12+
13+
![Snippet of Sheets datetime converter](./screenshot.png)
14+
15+
### Snippet
16+
17+
- {{< externalLink >}}
18+
- {{< commentLink >}}
19+
- {{< scrvizLink >}}
20+
21+
{{< codeFromFile "index.js" >}}
22+
23+
### Run it
24+
25+
{{< codeFromFile "run.js" >}}
26+
27+
### Relations
28+
29+
- [google apps script - How to get a date format string from a sheet cell? - Stack Overflow](https://stackoverflow.com/questions/33809229/how-to-get-a-date-format-string-from-a-sheet-cell/33813783#33813783)
30+
- [javascript - Converting Google spreadsheet date into a JS Date object? - Stack Overflow](https://stackoverflow.com/questions/14363073/converting-google-spreadsheet-date-into-a-js-date-object)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* Returns Sheets datetime number from date of F5 cell
3+
* @customfunction
4+
*/
5+
function GETSHEETDATETIMENUMBER() {
6+
return toGoogleSheetsDateNumber(
7+
SpreadsheetApp.getActiveSheet().getRange('F5').getValue()
8+
);
9+
}

0 commit comments

Comments
 (0)